Increase network traffic speed for GPU nodes

This page shows you how to increase network bandwidth for GPU nodes onGoogle Kubernetes Engine (GKE) clusters by usingGoogle Virtual NIC (gVNIC).

In Autopilot clusters, nodes that run GKE version 1.30.2-gke.1023000and later have Google Virtual NIC (gVNIC) installed automatically.The instructions on this page only apply to Standard clusters.

To increase bandwidth on CPU nodes, consider enablingTier-1 bandwidth.

Before you begin

Before you start, make sure that you have performed the following tasks:

  • Enable the Google Kubernetes Engine API.
  • Enable Google Kubernetes Engine API
  • If you want to use the Google Cloud CLI for this task,install and theninitialize the gcloud CLI. If you previously installed the gcloud CLI, get the latest version by running thegcloud components update command. Earlier gcloud CLI versions might not support running the commands in this document.Note: For existing gcloud CLI installations, make sure to set thecompute/regionproperty. If you use primarily zonal clusters, set thecompute/zone instead. By setting a default location, you can avoid errors in the gcloud CLI like the following:One of [--zone, --region] must be supplied: Please specify location. You might need to specify the location in certain commands if the location of your cluster differs from the default that you set.

Limitations

Requirements

  • GKE nodes must use a Container-Optimized OSnode image.

Enable gVNIC

You can create a cluster that has node pools that use gVNIC, create a node poolwith gVNIC enabled, or update a node pool to use gVNIC.

Create a cluster

Create a cluster with node pools that use gVNIC:

gcloudcontainerclusterscreateCLUSTER_NAME\--acceleratortype=GPU_TYPE,count=AMOUNT\--machine-type=MACHINE_TYPE\--enable-gvnic

Replace the following:

  • CLUSTER_NAME: the name of the new cluster.
  • GPU_TYPE: the type ofGPU accelerator that you use. For example,nvidia-tesla-t4.
  • AMOUNT: the number of GPUs to attach to nodes in thenode pool.
  • MACHINE_TYPE: the type of machine you want to use.gVNIC is not supported onmemory-optimized machine types.

Create a node pool

Create a node pool that uses gVNIC:

gcloudcontainernode-poolscreateNODEPOOL_NAME\--cluster=CLUSTER_NAME\--enable-gvnic

Replace the following:

  • NODEPOOL_NAME: the name of a new node pool.
  • CLUSTER_NAME: the name of the existing cluster.

Update a node pool

Update a node pool to use gVNIC:

gcloudcontainernode-poolsupdateNODEPOOL_NAME\--cluster=CLUSTER_NAME\--enable-gvnic

Replace the following:

  • NODEPOOL_NAME: the name of the node pool that you wantto update.
  • CLUSTER_NAME: the name of the existing cluster.

This change requires recreating the nodes, which can cause disruption to yourrunning workloads. For details about this specific change, find thecorresponding row in themanual changes that recreate the nodes using a nodeupgrade strategy without respecting maintenancepoliciestable. To learn more about node updates, seePlanning for node updatedisruptions.

Caution: GKE immediately begins recreating the nodes for thischange using the node upgrade strategy, regardless of active maintenancepolicies. GKE depends onresourceavailability for thechange. Disabling node auto-upgradesdoesn't prevent thischange.Ensure that your workloads running on the nodes are prepared for disruptionbefore you initiate this change.

Disable gVNIC

Update the node pool using the--no-enable-gvnic flag:

gcloudcontainernode-poolsupdateNODEPOOL_NAME\--cluster=CLUSTER_NAME\--no-enable-gvnic

This change requires recreating the nodes, which can cause disruption to yourrunning workloads. For details about this specific change, find thecorresponding row in themanual changes that recreate the nodes using a nodeupgrade strategy without respecting maintenancepoliciestable. To learn more about node updates, seePlanning for node updatedisruptions.

Caution: GKE immediately begins recreating the nodes for thischange using the node upgrade strategy, regardless of active maintenancepolicies. GKE depends onresourceavailability for thechange. Disabling node auto-upgradesdoesn't prevent thischange.Ensure that your workloads running on the nodes are prepared for disruptionbefore you initiate this change.

Troubleshooting

To troubleshoot gVNIC, seeTroubleshooting Google Virtual NIC.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.