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硬體的Elastic Compute Service保護技術,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等多種硬體能力以及對模型資料的全鏈路保護,實現端到端的安全推理。
步驟一:建立節點池
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在頁面右上方,單擊建立節點池,按照頁面提示完成配置,然後單擊確認配置。
下文僅介紹主要配置項。更多資訊,請參見建立節點池。
配置項
描述
虛擬交換器
可用性區域I下的虛擬交換器。
自動調整
保持預設配置,不開啟自動Auto Scaling。
執行個體規格
執行個體規格為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執行個體添加到節點池
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在節點池列表的操作列,單擊目標節點池對應的更多>添加已有節點,在選擇已有雲端服務器執行個體設定精靈頁面,選擇添加方式為自動添加,在雲端服務器列表中選擇步驟二建立的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