許多 GKE 客戶會執行大規模 AI/機器學習工作負載,或擁有敏感的智慧財產 (IP),例如專屬模型權重。本文說明基礎架構架構,可在遠端執行個體上執行容器,這些執行個體可在多個區域中執行,並由叢集中的節點管理。這個連結的基礎架構 (包括各種作業系統 (OS) 映像檔和功能) 稱為 GKE Hypercluster。
GKE Hypercluster 適用於希望安全性和擴充性超越 GKE 或 AI Hypercomputer 限制的客戶,且願意接受營運摩擦增加,以達成這些目標。
何時使用 GKE Hypercluster
根據預設,GKE 叢集可滿足大多數正式環境 AI 工作負載的需求,包括有特殊安全性和擴充性需求的工作負載。舉例來說,GKE 支援下列用途:
- 在機密 Google Kubernetes Engine 節點上執行 GPU,並從工作負載存取 vTPM 或硬體式機密運算模組。
- 使用 GKE 適用的 Workload Identity Federation,將加密資料的存取權限制於特定授權身分。
- 使用 ComputeClass 和節點集區自動建立功能,根據可用容量部署 TPU 和 GPU 節點。
- 使用存取權核准、資料存取透明化控管機制和 GKE 控制層授權,控管及監控 Google 員工的存取活動。
GKE Hypercluster 中的連結基礎架構專為特定安全性與擴充性用途而設計,可提供超出一般 GKE 架構現有限制的效能。根據設計,連結的基礎架構無法使用特定 GKE 觀測能力、疑難排解功能和功能。這項基礎架構會修改典型的 GKE 叢集架構,以滿足下列特殊用途:
防範內部威脅,保護模型和查詢:防止自家平台管理員和 Google 員工存取專屬模型權重,或機密推論查詢和回覆。AI 資產只會在經過認證且可驗證的環境中解密。
跨區域執行 AI 工作負載:部署的工作負載規模超出支援的節點資源調度限制。在任何有可用容量的區域建立及使用加速器基礎架構,包括叢集區域或可用區以外的位置。
運作方式
如 GKE 叢集架構所述,標準模式叢集具有區域或可用區控制層,可提供 Kubernetes API,並管理叢集中的所有節點和節點集區。叢集中的所有節點都會使用特定虛擬私有雲網路,其他 Google Cloud 資源也可能使用該網路。每個 GKE 節點都會執行各種系統元件,例如節點代理程式、記錄和指標代理程式,以及其他 Kubernetes 和 GKE 元件。kubelet
相較之下,GKE Hypercluster 使用名為「連結的執行程式」的執行個體,這些執行個體不會在 Kubernetes API 伺服器中註冊為 Node 物件。這些執行個體具有下列屬性:
- 沒有 Kubernetes 代理程式,且 GKE 元件數量最少。
- 根據用途選擇專屬的 OS 映像檔。沒有 GKE 節點映像檔。
- 執行個體會使用專屬的獨立虛擬私有雲網路。
連結的執行器由叢集中的控制節點管理,這些節點會將執行器與叢集連結。控制節點會執行系統元件,例如 kubelet 程序。單一控制節點可以連結多個執行器。這些連結的執行器專為執行大規模工作負載而設計,例如訓練工作需要比叢集區域資料中心提供的更多電力。
設定基礎架構時,您會根據用途建立具有特定設定的 Runner,然後將執行個體連結至叢集中的專屬控制節點。Kubernetes API 只需要管理控制節點,因為連結的 Runner 執行個體沒有 kubelet,也不會產生 API 伺服器流量。建立連結的執行個體時,您可以透過下列其中一種方式設定執行個體:
- 預設設定:根據預設,連結的執行個體是執行 Container-Optimized OS 映像檔的 Compute Engine VM。平台管理員和 SRE 等緊急應變人員可以使用 SSH 存取執行個體。如果您想保留基礎架構的管理員存取權,這些執行個體就非常適合。
- 密封設定:部分 AI 工作負載會處理機密資料,例如專有模型權重和加密查詢。如要保護 AI 資產,避免遭到任何存取 (包括 Google 員工和您自己的管理員),可以將連結的執行個體設定為密封模式。這些密封執行個體具有下列屬性:
- 使用最基本的 OS 映像檔。
- 使用 TPU 的 Titanium Intelligence Enclave,以及 GPU 的 NVIDIA 機密運算。
- 執行工作負載層級和韌體驗證。
- 驗證容器映像檔簽章。
- 禁止所有執行個體和容器的管理員存取權。
無論使用哪種設定,執行個體都不會包含 GKE 節點中的許多元件和功能,例如 GKE 專屬的 TPU 執行階段參數,或是 GKE 記錄和監控代理程式。
關於預設設定
根據預設,您為 GKE Hypercluster 建立的執行個體,是專為執行實際工作環境工作負載而設計,同時提供與一般 GKE 節點類似的機制,可用於疑難排解和緊急應變。執行個體會在 Compute Engine 機器類型上執行,並使用 Container-Optimized OS 映像檔。發生中斷或當機等事件時,管理員可以直接存取執行個體,排解問題。與 Kubernetes 節點不同,執行個體不會執行許多啟用 Kubernetes 和 GKE 功能的系統元件,因此每個執行個體可分配的資源更多。
您可以在任何 Google Cloud 區域中建立執行個體,然後將這些執行個體連結至叢集中的控制節點。控制節點會執行許多 Kubernetes 控制層的功能,管理已部署工作負載的生命週期。
關於密封設定
如果您的主要用途是保護資產免於所有存取行為,則可設定連結的執行器使用密封設定,這樣一來,執行個體就會具備下列安全屬性:
- 每個執行個體都是以特定技術為基礎的受信任的執行環境 (TEE):
- TPU 使用 Titanium Intelligence Enclave,這是 Private AI Compute 平台的一部分。
- GPU 會使用 NVIDIA 機密運算技術,保護使用中的資料。
- 執行個體會執行以 Container-Optimized OS 為基礎的最小 OS 映像檔,該映像檔會停用 SSH 存取權、防止容器殼層存取,並執行驗證代理程式。
- 您可以定義政策,明確指定哪些工作負載可在執行個體上執行。舉例來說,您可以要求工作負載使用已簽署的容器映像檔摘要,或具有特定 Pod 規格。
- 認證代理程式會將韌體和工作負載測量結果傳送至 Google Cloud Attestation,並傳回可驗證的認證聲明結果權杖。
產生的執行個體會提供受限的驗證環境,其中只能執行核准的程式碼,且機密資料會在硬體式安全 Enclave 中處理。執行個體傳回的認證資訊會驗證工作負載是否執行核准的程式碼,以及是否部署在正確的執行個體上。
您可以透過下列方式,使用這些密封例項保護加密模型、查詢和回應:
模型權重:
- 使用 Cloud KMS 中的 Cloud HSM 金鑰加密模型權重。
- 將加密模型權重儲存在 Cloud Storage 中。
- 只允許經過驗證的工作負載讀取該儲存空間。
- 只允許經過認證的工作負載存取解密金鑰。
查詢和回覆:
- 使用 Cloud KMS 中的 Cloud HSM 金鑰加密查詢和回應。
- 只允許經過認證的工作負載解密。
- 在工作負載之間傳送加密資料時,必須提供驗證證明。
密封設定是連結的執行個體可選用的安全層。與預設設定類似,您可以在任何區域和可用區中建立密封執行個體。不過,密封執行個體的安全性屬性表示管理員和 Google 人員無法存取主機執行個體,以進行疑難排解。
適用資格
GKE Hypercluster 專為特定 AI/機器學習用途而設計,一般 GKE 叢集架構和功能無法滿足這些用途的需求。使用 GKE Hypercluster 的客戶有非典型的安全性和可擴充性需求。GKE Hypercluster 僅適用於符合資格的 GKE 客戶。如要確認是否符合資格並要求存取權,請與專屬帳戶團隊聯絡。