ACK集群支持基于Intel® Trusted Domain Extension(Intel® TDX)技术的ECS实例(下文简称为TDX实例)创建TDX机密虚拟机计算节点池,使现有集群具备TDX机密计算能力。创建ACK机密虚拟机节点池后,您无需改造应用代码,便可直接将应用部署至机密虚拟机节点池,平滑提升应用的安全水位。本文介绍如何创建TDX机密虚拟机计算节点池并在集群中部署一个示例应用。
前提条件
已在华北2(北京)地域创建一个ACK集群Pro版。具体操作,请参见创建Kubernetes托管版集群。
使用限制
支持TDX机密计算环境TDX实例必须满足以下要求:
地域:华北2(北京)可用区I
实例规格:g8i.xlarge及以上实例规格
镜像:Alibaba Cloud Linux 3.2104 LTS 64位 UEFI版
TDX机密计算环境存在一些已知的功能限制,请在使用前了解相关信息,请参见已知功能限制。
TDX介绍
Intel® TDX是一项基于CPU硬件的云服务器ECS保护技术,TDX实例的CPU寄存器、内存数据、中断处理等均受到CPU硬件的机密保护,云厂商和外部攻击者均无法监控或篡改TDX实例的内部运行状态(如运行的进程、计算中的敏感数据等)。关于Intel® TDX技术的更多信息,请参见Intel® Trusted Domain Extension(Intel® TDX)。
Intel® TDX可以为您的实例和应用提供默认的安全保护,即您可以将现有应用直接迁移至TDX实例上并获得TDX能力带来的安全保护,而无需重新开发现有的应用程序。
ACK机密虚拟机节点池可以为机密计算节点提供无缝的扩缩容能力,还可以提升主机操作系统和硬件的机密性。您可以以云原生的方式轻松部署ACK机密虚拟机节点池,以扩展和运维高安全水位的应用。ACK机密虚拟机节点池支持多种机密计算场景,例如金融风控,医疗健康数据隐私保护、AIGC及LLM推理和微调、机密数据库、大数据应用等。
以AIGC/LLM场景为例,下图介绍如何结合TDX、AMX等多种硬件能力以及对模型数据的全链路保护,实现端到端的安全推理。
步骤一:创建节点池
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在页面右上角,单击创建节点池,按照页面提示完成配置,然后单击确认配置。
下文仅介绍主要配置项。更多信息,请参见创建节点池。
配置项
描述
虚拟交换机
可用区I下的虚拟交换机。
自动伸缩
保持默认配置,不开启自动弹性伸缩。
实例规格
实例规格为g8i.xlarge及以上实例规格。
期望节点数
节点池初始节点数量。保持默认配置,为0。
操作系统
选择Alibaba Cloud Linux 3.2104 UEFI版。
以下为高级配置(页面下拉,单击显示高级选项)
节点标签
为了便于将Pod调度到该节点池,建议设置节点标签。
键:
nodepool-label
值:
tdx-vm-pool
步骤二:创建TDX实例
(可选)步骤三:检查TDX实例使能状态
您可以登录ECS实例,通过以下步骤检查TDX实例的TDX使能状态,确认实例处于安全保护中。
检查TDX使能状态。
lscpu |grep -i tdx_guest
下图所示表示TDX已经被正确使能。
检查TDX相关驱动安装情况。
ls -l /dev/tdx_guest
下图所示表示已经安装TDX相关驱动。
步骤四:将TDX实例添加到节点池
步骤五:部署示例应用
TDX机密虚拟机计算节点池创建完成后,您无需改造应用代码,即可将应用直接迁移部署到TDX机密虚拟机计算节点池中的TDX实例上。
通过控制台部署
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在页面右上角,单击使用YAML创建资源,选择示例模板为自定义,粘贴以下YAML文件,然后单击创建。
apiVersion: v1 kind: Pod metadata: labels: name: pod-tdx-vm name: pod-tdx-vm spec: containers: - image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest name: hello command: - sh - -c - 'echo hello && sleep infinity' nodeSelector: # 确保Pod被调度到TDX虚拟机实例上 nodepool-label: tdx-vm-pool
创建成功后,您可以在容器组页面查看应用Pod的状态和其他信息。Pod状态显示Running时,表明应用部署成功。
通过kubectl部署
已通过kubectl工具连接集群。
将以下文件保存为pod-tdx-vm.yaml。
apiVersion: v1 kind: Pod metadata: labels: name: pod-tdx-vm name: pod-tdx-vm spec: containers: - image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest name: hello command: - sh - -c - 'echo hello && sleep infinity' nodeSelector: # 确保 pod 被调度 TDX 虚拟机实例上 nodepool-label: tdx-vm-pool
执行以下命令,部署pod-tdx-vm.yaml,创建一个名为pod-tdx-vm的应用Pod。
kubectl apply -f pod-tdx-vm.yaml
执行以下命令,确认应用部署成功。
kubectl get pod pod-tdx-vm
预期输出:
NAME READY STATUS RESTARTS AGE pod-tdx-vm 1/1 Running 0 52s