ACK集群支持基于Intel® Trusted Domain Extension(Intel® TDX)技术的ECS实例(下文简称为TDX实例)创建TDX机密虚拟机计算节点池,使现有集群具备TDX机密计算能力。创建ACK机密虚拟机节点池后,您无需改造应用代码,便可直接将应用部署至机密虚拟机节点池,平滑提升应用的安全水位。本文介绍如何创建TDX机密虚拟机计算节点池并在集群中部署一个示例应用。
使用限制
TDX机密计算环境存在一些已知功能限制,请在使用前充分了解相关内容。
前提条件
已在华北2(北京)地域创建一个ACK托管集群Pro版,请参见创建ACK托管集群。
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 LTS 64位。
节点标签(Labels)
为了便于将Pod调度到该节点池,建议设置节点标签。
-
键:
nodepool-label -
值:
tdx-vm-pool
-
步骤二:创建TDX实例
在控制台创建具备TDX特性的实例步骤与创建普通实例类似,但需要注意一些特定选项。本步骤重点介绍TDX实例相关的特定配置,如果您想了解其他通用配置,请参见自定义购买实例。
访问ECS控制台-实例。
在页面左侧顶部,选择目标资源所在的资源组和地域。
-
单击创建实例,按照以下配置创建对应实例。
配置项
说明
地域与可用区
支持的地域与可用区与实例规格有关。请参见支持的地域、规格与镜像。
本文以华北2(北京)可用区I、ecs.g8i.xlarge规格为例。
实例规格
镜像
选中机密虚拟机复选框,然后选择Alibaba Cloud Linux 3.2104 LTS 64位镜像
-
根据界面提示,完成创建实例。
(可选)步骤三:检查TDX实例启用 状态
您可以登录ECS实例,通过以下步骤检查TDX实例的TDX启用状态,确认实例处于安全保护中。
-
检查TDX的启用状态。
lscpu |grep -i tdx_guest如以下命令输出所示,Flags 列表中包含
tdx_guest则表示 TDX 已被正确启用。[root@iZwzxxxxxxxx:~]# lscpu |grep -i tdx_guest Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc bts rep_good nopl xtopology tsc_known_freq pni pclmulqdq dtes64 ds_cpl ssse3 sdbg fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single sbd ibrs ibpb stibp ibrs_enhanced tdx_guest fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopts clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni avx512_bf16 wbnoinvd avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect cldemote movdiri movdir64b _vp2intersect md_clear serialize tsxldtrk amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities -
检查TDX相关驱动安装情况。
ls -l /dev/tdx_guest如以下命令输出所示表示已经安装 TDX 相关驱动。
[root@iZ2ze ~]# ls -l /dev/tdx_guest crw------- 1 root root 10, 125 Jan 30 16:51 /dev/tdx_guest
步骤四:将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