หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Confidential Virtual Machines (CVMs) offer strong security and confidentiality for tenants. CVMs offer VM based Hardware Trusted Execution Environment (TEE) that leverage SEV-SNP security features to deny the hypervisor and other host management code access to VM memory and state, providing defense in depth protections against operator access. These features enable node pools with CVMs to target the migration of highly sensitive container workloads to AKS without any code refactoring while benefiting from the features of AKS. For example, you may require CVMs if you have the following:
- Workloads that handle security critical data and/or sensitive customer data
- Services that are required to meet various compliance requirements, especially for government contracts. Without a scalable solution for securing data, this could potentially lead to the loss of accreditation and contracts.
In this article, you learn how to create AKS node pools using Confidential VM sizes.
AKS supported confidential VM sizes
Azure offers a choice of Trusted Execution Environment (TEE) options from both AMD and Intel. These TEEs allow you to create Confidential VM environments with excellent price-to-performance ratios, all without requiring any code changes.
- AMD-based Confidential VMs, use AMD SEV-SNP technology, which is introduced with third Gen AMD EPYC™ processors.
- Intel-based Confidential VMs use Intel TDX, with fourth Gen Intel® Xeon® processors.
Note
Intel TDX-based Confidential VMs aren't currently supported on AKS.
For more information, see CVM VM sizes.
Security features
CVMs offer the following security enhancements as compared to other virtual machine (VM) sizes:
- Robust hardware-based isolation between virtual machines, hypervisor, and host management code.
- Customizable attestation policies to ensure the host's compliance before deployment.
- VM encryption keys that the platform or the customer (optionally) owns and manages.
- Secure key release with cryptographic binding between the platform's successful attestation and the VM's encryption keys.
- Dedicated virtual Trusted Platform Module (TPM) instance for attestation and protection of keys and secrets in the virtual machine.
- Secure boot capability similar to Trusted launch for Azure VMs
How does it work?
If you're running a workload that requires enhanced confidentiality and integrity, you can benefit from memory encryption and enhanced security without code changes in your application. All pods on your CVM node are part of the same trust boundary. The nodes in a node pool created with CVMs use a customized node image specially configured for CVMs.
Supported OS versions
You can create CVM node pools on Linux OS types (Ubuntu and Azure Linux). However, not all OS versions support CVM node pools.
This table includes the supported OS versions:
| OS type | OS SKU | CVM support | CVM default |
|---|---|---|---|
| Linux | Ubuntu |
Supported | Ubuntu 20.04 is default for Kubernetes version 1.24-1.33. Ubuntu 24.04 is the default for Kubernetes version 1.34-1.38. |
| Linux | Ubuntu2204 |
Not supported | AKS doesn't support CVM for Ubuntu 22.04. |
| Linux | Ubuntu2404 |
Supported | CVM is supported on Ubuntu2404 in Kubernetes 1.32-1.38. |
| Linux | AzureLinux |
Supported on Azure Linux 3.0 | Azure Linux 3 is default when enabling CVM for Kubernetes version 1.28-1.36. |
| Linux | flatcar |
Not supported | Flatcar Container Linux for AKS doesn't support CVM. |
| Linux | AzureLinuxOSGuard |
Not supported | Azure Linux with OS Guard for AKS doesn't support CVM. |
| Linux | AzureContainerLinux | Not supported | Azure Container Linux (ACL) doesn't support CVM. |
| Windows | All Windows OS SKUs | Not supported | N/A |
When using Ubuntu or AzureLinux as the osSKU, if the default OS version doesn't support CVMs, AKS defaults to the most recent CVM-supported version of the OS. For example, Ubuntu 22.04 is default for Linux node pools. Since 22.04 doesn't currently support CVMs, AKS defaults to Ubuntu 20.04 for Linux CVM-enabled node pools.
Limitations
The following limitations apply when adding a node pool with CVM to AKS:
- You can't use FIPS, ARM64, Trusted Launch, or Pod Sandboxing.
- You can't update an existing node pool to migrate to a CVM size. To migrate, you'll need to resize your node pool.
- You can't use CVMs with Windows node pools.
- CVMs with Azure Linux is currently in preview.
- Azure Container Linux (ACL) currently doesn't support CVM node pools in AKS.
Prerequisites
Before you begin, make sure you have the following:
- An existing AKS cluster.
- CVM sizes must be available for your subscription in the region where the cluster is created. You must have sufficient quota to create a node pool with a CVM size.
- If you're using Azure Linux os, you need to install the
aks-previewextension, update theaks-previewextension, and register the preview feature flag. If you're using Ubuntu, you can skip these steps.
If you are using Azure Linux
CVMs for Ubuntu is GA, but CVMs with Azure Linux is currently still in preview. If you would like to use CVM node pools with Azure Linux as the OS of choice, ensure you enable the extension and register the flag.
Install aks-preview extension
Install the
aks-previewAzure CLI extension using theaz extension addcommand.Important
AKS preview features are available on a self-service, opt-in basis. Previews are provided "as is" and "as available," and they're excluded from the service-level agreements and limited warranty. AKS previews are partially covered by customer support on a best-effort basis. As such, these features aren't meant for production use. For more information, see the following support articles:
az extension add --name aks-previewUpdate to the latest version of the extension using the
az extension updatecommand.az extension update --name aks-preview
Register AzureLinuxCVMPreview feature flag
Register the
AzureLinuxCVMPreviewfeature flag using theaz feature registercommand.az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxCVMPreview"Verify the registration status using the
az feature showcommand. It takes a few minutes for the status to show Registered.az feature show --namespace Microsoft.ContainerService --name AzureLinuxCVMPreviewWhen the status reflects Registered, refresh the registration of the Microsoft.ContainerService resource provider using the
az provider registercommand.az provider register --namespace Microsoft.ContainerService
Add a node pool with a CVM to your AKS cluster
Add a node pool with a CVM to your AKS cluster using the az aks nodepool add command and set the node-vm-size to a supported VM size.
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name cvmnodepool \
--node-count 3 \
--node-vm-size Standard_DC4as_v5
If you don't specify the osSKU or osType, AKS defaults to --os-type Linux and --os-sku Ubuntu.
Upgrade an existing node pool with a CVM to Ubuntu 24.04
Upgrade an existing node pool with a CVM to Ubuntu 24.04 from Ubuntu 20.04 using the az aks nodepool update command. Set the os-sku as Ubuntu2404.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name cvmnodepool \
--os-sku Ubuntu2404
Note
A node pool which is Ubuntu 24.04 with a CVM is supported from AKS cluster 1.33 version. Additionally, before Ubuntu 24.04 becomes GA, you need to register the Ubuntu2404Preview feature. For more information, see here to register the feature.
Verify the node pool uses CVMs
Verify a node pool uses CVMs using the
az aks nodepool showcommand and verify thevmSizeisStandard_DCa4_v5.az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'vmSize'The following example command and output shows the node pool uses CVMs:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'vmSize' "Standard_DC4as_v5"Verify a node pool uses a CVM image using the
az aks nodepool listcommand.az aks nodepool list \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'nodeImageVersion'The following example command and output shows the node pool uses an Ubuntu 20.04 CVM image:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'nodeImageVersion' "AKSUbuntu-2004cvmcontainerd-202507.02.0"
Remove a node pool with CVMs from an AKS cluster
Remove a node pool with CVMs from an AKS cluster using the az aks nodepool delete command.
az aks nodepool delete \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name cvmnodepool
Related content
In this article, you learned how to add a node pool with CVMs to an AKS cluster.
- For more information about CVMs, see Confidential VM node pools support on AKS.
- To migrate an existing node pool to a CVM vm size, you can resize your node pool.
- If you're interested in enabling Trusted Launch on your node pools, see Trusted Launch on AKS.