Run a vTPM in Confidential GKE Nodes workloads

This page shows you how to use Virtual Trusted Platform Modules (vTPMs) withGoogle Kubernetes Engine (GKE) Standard workloads that run inConfidential GKE Nodes. vTPMs provide platform integrity along withother security features, such as remote attestation, secret sealing, and randomnumber generation. On this page, you learn how to install a device plugin andmake vTPMs visible to GKE applications.

This page is intended for Security engineers who want to remotely access thesecurity features of vTPMs in GKE applications.

Before reading this page, ensure that you're familiar with the followingfeatures:

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

You can make vTPMs visible to GKE applications only inConfidential GKE Nodes that use AMD SEV as the Confidential Computingtechnology. Intel TDX and AMD SEV-SNP aren't supported.

Availability

You can use Confidential GKE Nodes under the following conditions:

Create a Confidential GKE Nodes cluster

You can create a new cluster with Confidential GKE Nodes enabled byusing the gcloud CLI or the Google Cloud console. If you enableConfidential GKE Nodes at cluster level, all the nodes in the clusterbecomeConfidential VMs.

gcloud

Create a new cluster that uses AMD SEV as the Confidential Computingtechnology:

gcloudcontainerclusterscreateCLUSTER_NAME\--machine-type=MACHINE_TYPE\--confidential-node-type=SEV

Replace the following:

  • CLUSTER_NAME: the name of your new cluster.
  • MACHINE_TYPE: the machine type for your cluster'sdefault node pool, which must be either the N2D or C2D machine type.

Console

  1. In the Google Cloud console, go to theCreate a Kubernetes cluster page.

    Go to Create a Kubernetes cluster

  2. In the navigation menu, underCluster, clickSecurity.
  3. SelectEnable Confidential GKE Nodes.
  4. In the confirmation dialog, clickMake changes.
  5. In theType menu, selectAMD SEV.
  6. For configuring other sections of the cluster, follow the instructions inCreating a regional cluster.
  7. ClickCreate.

After creating a cluster with Confidential GKE Nodes, any node poolscreated in this cluster can only use confidential nodes. You can't createregular node pools in clusters with Confidential GKE Nodes enabled. Youalso can't disable Confidential GKE Nodes on individual node poolswhen you enable Confidential GKE Nodes at cluster level.

Run a vTPM in Confidential GKE Nodes workloads

To run vTPM in Confidential GKE Nodes workloads, Google provides aDaemonSet to apply to the Confidential GKE Nodes clusters. Run thefollowing command to deploy the DaemonSet:

kubectlcreate-fhttps://raw.githubusercontent.com/google/cc-device-plugin/main/manifests/cc-device-plugin.yaml

Configure Pods to see the vTPM

You use aresource limit to configure Pods to seevTPM. Specify the resource limit as 1 in aPod specificationusing the following key-value pair

  • Key:google.com/cc
  • Value: 1

An example of a Pod specification that uses vTPM:

apiVersion:v1kind:Podmetadata:name:my-vtpm-podspec:containers:-name:nginximage:nginxports:-containerPort:8080name:httpresources:limits:google.com/cc:1

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 2026-02-19 UTC.