在ACK集群中创建TDX机密虚拟机计算节点池

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推理和微调、机密数据库、大数据应用等。

image

以AIGC/LLM场景为例,下图介绍如何结合TDX、AMX等多种硬件能力以及对模型数据的全链路保护,实现端到端的安全推理。

image

步骤一:创建节点池

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 在页面右上角,单击创建节点池,按照页面提示完成配置,然后单击确认配置

    下文仅介绍主要配置项。更多信息,请参见创建节点池

    配置项

    描述

    虚拟交换机

    可用区I下的虚拟交换机。

    自动伸缩

    保持默认配置,不开启自动弹性伸缩。

    实例规格

    实例规格为g8i.xlarge及以上实例规格。

    期望节点数

    节点池初始节点数量。保持默认配置,为0。

    操作系统

    选择Alibaba Cloud Linux 3.2104 UEFI版。

    以下为高级配置(页面下拉,单击显示高级选项

    节点标签

    为了便于将Pod调度到该节点池,建议设置节点标签。

    • 键:nodepool-label

    • 值:tdx-vm-pool

步骤二:创建TDX实例

  1. 前往ECS实例创建页,创建TDX实例。

    下文仅介绍主要配置项。更多信息,请参见自定义购买实例

    配置项

    描述

    地域

    选择华北2(北京)。

    网络及可用区

    • 专有网络选择步骤一创建的节点池所在的VPC。

    • 可用区选择可用区I步骤一创建的节点池所使用的虚拟交换机。

    实例

    选择g8i.xlarge及以上的实例规格。

    镜像

    • 选择Alibaba Cloud Linux 3.2104 LTS 64位 UEFI版

    • 勾选机密虚拟机

    安全组

    选择步骤一创建的节点池所使用的安全组。

(可选)步骤三:检查TDX实例使能状态

您可以登录ECS实例,通过以下步骤检查TDX实例的TDX使能状态,确认实例处于安全保护中。

  1. 检查TDX使能状态。

    lscpu |grep -i tdx_guest

    下图所示表示TDX已经被正确使能。tdx-install

  2. 检查TDX相关驱动安装情况。

    ls -l /dev/tdx_guest

    下图所示表示已经安装TDX相关驱动。image

步骤四:将TDX实例添加到节点池

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 在节点池列表的操作列,单击目标节点池对应的更多>添加已有节点,在选择已有云服务器实例配置向导页面,选择添加方式自动添加,在云服务器列表中选择步骤二创建的TDX实例,然后按照页面提示完成配置。

    关于添加已有节点配置的详细信息,请参见添加已有节点

步骤五:部署示例应用

TDX机密虚拟机计算节点池创建完成后,您无需改造应用代码,即可将应用直接迁移部署到TDX机密虚拟机计算节点池中的TDX实例上。

通过控制台部署

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 容器组

  2. 在页面右上角,单击使用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部署

  1. 已通过kubectl工具连接集群

  2. 将以下文件保存为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
  3. 执行以下命令,部署pod-tdx-vm.yaml,创建一个名为pod-tdx-vm的应用Pod。

    kubectl apply -f pod-tdx-vm.yaml
  4. 执行以下命令,确认应用部署成功。

    kubectl get pod pod-tdx-vm

    预期输出:

    NAME         READY   STATUS    RESTARTS   AGE
    pod-tdx-vm   1/1     Running   0          52s

相关操作

使用CPU加速Stable Diffusion XL Turbo的文生图推理