你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
机密虚拟机(CVM) 为租户提供强大的安全性和机密性。 CVM 提供基于 VM 的硬件受信任执行环境(TEE),利用 SEV-SNP 安全功能来拒绝虚拟机监控程序和其他主机管理代码对 VM 内存和状态的访问,从而为操作员访问提供深度保护。 借助这些功能,同时受益于 AKS 的功能,具有 CVM 的节点池能够将高度敏感的容器工作负载迁移到 AKS,而无需任何代码重构。 例如,如果满足以下条件,可能需要 CVM:
- 处理安全关键数据和/或敏感数据的工作负荷
- 满足各种合规性要求所需的服务,尤其是政府合同。 如果没有用于保护数据的可缩放解决方案,这可能会导致认证和合同丢失。
本文介绍如何使用机密 VM 大小创建 AKS 节点池。
谨慎
本文提到了一项正在使用即将被 AKS 弃用的 Ubuntu 操作系统版本的功能。
- 从 2027 年 3 月 17 日开始,AKS 将不再支持 Ubuntu 20.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 将节点池升级到 kubernetes 版本 1.34+ 以迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 AKS GitHub 问题。
重要
从 2025 年 11 月 30 日开始,AKS 将不再支持或提供 Azure Linux 2.0 安全更新。 从 2026 年 3 月 31 日起,将删除节点映像,并且无法缩放节点池。 通过将 节点池 升级到受支持的 Kubernetes 版本或迁移到 osSku AzureLinux3,以迁移到受支持的 Azure Linux 版本。 有关更多信息,请参阅[停用] AKS 上的 Azure Linux 2.0 节点池。
AKS 支持的机密 VM 大小
Azure 提供 AMD 和 Intel 提供的 受信任执行环境 (TEE) 选项。 通过这些 TEE,可以创建具有出色性价比的机密 VM 环境,且无需进行任何代码更改。
- 基于 AMD 的机密 VM 使用 AMD SEV-SNP 技术,这是第三代 AMD EPYC™ 处理器引入的。
- 基于 Intel 的机密 VM 使用 Intel TDX,以及第四代 Intel® Xeon® 处理器。
这两种技术都有不同的实现。 但是,这两者都提供与云基础结构堆栈类似的保护。 有关详细信息,请参阅 CVM VM 大小。
安全功能
与其他虚拟机(VM)大小相比,CVM 提供以下安全增强功能:
- 虚拟机、虚拟机监控程序和主机管理代码之间以强大的硬件进行隔离。
- 可自定义的证明策略,以确保在部署之前主机的合规性。
- 首次启动之前基于云的机密 OS 磁盘加密。
- 平台或客户(可选)拥有和管理的 VM 加密密钥。
- 通过平台的成功证明和 VM 的加密密钥之间的加密绑定,可以安全地发布密钥。
- 用于证明和保护虚拟机中密钥和机密的专用虚拟受信任平台模块(TPM)实例。
- 与 Azure VM 的受信任启动类似的安全启动功能
它的工作原理是什么?
如果运行的工作负荷需要增强的机密性和完整性,则可以受益于内存加密和增强的安全性,而无需在应用程序中更改代码。 CVM 节点上的所有 Pod 都是同一信任边界的一部分。 使用 CVM 创建的节点池中的节点使用为 CVM 配置的自定义 [节点映像][./node-images]。
支持的 OS 版本
可以在 Linux OS 类型(Ubuntu 和 Azure Linux)上创建 CVM 节点池。 但是,并非所有 OS 版本都支持 CVM 节点池。
此表包括支持的 OS 版本:
| OS 类型 | 操作系统 (OS) 产品型号 (SKU) | CVM 支持 | CVM 默认值 |
|---|---|---|---|
| Linux | Ubuntu |
已支持 | Ubuntu 20.04 是 K8s 版本 1.24-1.33 的默认操作系统。 Ubuntu 24.04 是 Kubernetes 版本 1.34 到 1.38 的默认操作系统。 |
| Linux | Ubuntu2204 |
不支持 | AKS 不支持 Ubuntu 22.04 的 CVM。 |
| Linux | Ubuntu2404 |
已支持 | CVM 在 K8s 1.32-1.38 上得到支持Ubuntu2404。 |
| Linux | AzureLinux |
支持 Azure Linux 3.0 | 为 K8s 版本 1.28-1.36 启用 CVM 时,默认为 Azure Linux 3。 |
| Windows操作系统 | 所有 Windows 操作系统型号 | 不支持 |
使用 Ubuntu 或 AzureLinux 作为 osSKU 时,如果默认的操作系统版本不支持 CVM,AKS 将默认为最新支持 CVM 的操作系统版本。 例如,Linux 节点池默认使用 Ubuntu 22.04。 由于 22.04 目前不支持 CVM,AKS 会自动将已启用 Linux CVM 的节点池设置为使用 Ubuntu 20.04。
限制
将具有 CVM 的节点池添加到 AKS 时,以下限制适用:
- 您不能使用 FIPS、ARM64、受信任的启动或 Pod 沙盒化功能。
- 无法更新现有节点池以迁移到 CVM 大小。 若要迁移,需要 调整节点池的大小。
- 不能将 CVM 与 Windows 节点池配合使用。
- 使用 Azure Linux 的 CVM 目前为预览版。
先决条件
在开始之前,请确保具有以下各项:
- 现有的 AKS 群集。
- 在创建群集的区域,CVM 大小必须可用于订阅。 必须有足够的配额才能创建具有 CVM 大小的节点池。
- 如果使用 Azure Linux os,则需要安装
aks-preview扩展、更新aks-preview扩展并注册预览功能标志。 如果使用 Ubuntu,可以跳过这些步骤。
安装 aks-preview 扩展
使用
aks-preview命令安装az extension addAzure CLI 扩展。重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
az extension add --name aks-preview使用
az extension update命令更新到扩展的最新版本。az extension update --name aks-preview
注册 AzureLinuxCVMPreview 功能标志
使用 [
AzureLinuxCVMPreview][az-feature-register] 命令注册az feature register功能标志。az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxCVMPreview"使用 [
az feature show][az-feature-show] 命令验证注册状态。 几分钟后,状态将显示为“已注册”。az feature show --namespace Microsoft.ContainerService --name AzureLinuxCVMPreview当状态反映为“已注册”时,请使用 [][az-provider-register] 命令刷新 Microsoft.ContainerService 资源提供程序的注册
az provider register。az provider register --namespace Microsoft.ContainerService
将包含 CVM 的节点池添加到 AKS 群集
使用
az aks nodepool add命令将具有 CVM 的节点池添加到 AKS 群集,并将该节点池设置为node-vm-size受支持的 VM 大小。az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --node-count 3 \ --node-vm-size Standard_DC4as_v5
如果未指定 osSKU 或 osType,则 AKS 默认为 --os-type Linux 和 --os-sku Ubuntu。
验证节点池是否使用 CVM
使用
az aks nodepool show命令验证节点池是否使用了 CVM,并验证vmSize是否为Standard_DCa4_v5。az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'vmSize'以下示例命令和输出显示节点池使用 CVM:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'vmSize' "Standard_DC4as_v5"使用
az aks nodepool list命令来验证节点池是否使用 CVM 映像。az aks nodepool list \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'nodeImageVersion'以下示例命令和输出显示节点池使用 Ubuntu 20.04 CVM 映像:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool \ --query 'nodeImageVersion' "AKSUbuntu-2004cvmcontainerd-202507.02.0"
从 AKS 群集中删除具有 CVM 的节点池
使用
az aks nodepool delete命令从 AKS 群集中移除具有 CVM 的节点池。az aks nodepool delete \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name cvmnodepool
后续步骤
本文介绍了如何将具有 CVM 的节点池添加到 AKS 群集。
- 有关 CVM 的详细信息,请参阅 AKS 上的机密 VM 节点池支持。
- 若要将现有节点池迁移到 CVM VM 大小,可以 调整节点池的大小。
- 如果您只想在节点池上启用受信任启动,请参阅 AKS 上的受信任启动。