網路最佳做法

本文說明如何建立安全強韌的網路環境,以支援 AI Hypercomputer 工作負載。這些建議適用於網路架構師、網路工程師和開發人員,他們想在 AI Hypercomputer 上設定及部署人工智慧 (AI) 和機器學習 (ML) 工作負載。

建立明確且受限的 IAM 角色

正確設定 IAM 有助於提升 AI Hypercomputer 部署作業的安全性與成效。在生產環境中,權限不足或設定錯誤可能會導致部署失敗。在安全防護嚴密的環境中,如果預設 Compute Engine 服務帳戶沒有廣泛的 Editor 角色,AI Hypercomputer 部署作業 (尤其是使用 Cluster Toolkit的部署作業) 通常會失敗。

為協助減輕因權限問題而可能發生的部署問題,請遵循本節列出的最佳做法。

使用專屬服務帳戶

為提升安全性及控制能力,請避免使用預設的 Compute Engine 服務帳戶。請為 AI Hypercomputer 部署作業建立專屬服務帳戶。

您可以使用代管 Workload Identity 驗證及授權工作負載,不必使用服務帳戶權杖。詳情請參閱「使用 mTLS 驗證工作負載」(適用於 Compute Engine) 或「Workload Identity」(適用於 GKE)。

授予必要的 IAM 角色

將下列 IAM 角色授予您建立的專屬服務帳戶:

  • Compute 管理員 (roles/compute.admin):提供 Compute Engine 資源的完整控制權。
  • 服務帳戶使用者 (roles/iam.serviceAccountUser):允許將服務帳戶附加至其他資源,這對 Packer 等工具建構自訂映像檔時至關重要。
  • 儲存空間管理員 (roles/storage.admin):需要存取及管理 Cloud Storage bucket,例如儲存 Packer 映像檔或其他構件。
  • 記錄管理員 (roles/logging.admin):允許服務帳戶設定記錄及查看記錄,這對偵錯至關重要。

先檢查權限再部署

開始部署前,請確認服務帳戶具備必要權限。執行 gcloud projects get-iam-policy 指令

gcloud projects get-iam-policy PROJECT_ID \
    --flatten="bindings[].members" \ format='table(bindings.role)' \
    --filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL"

更改下列內容:

  • PROJECT_ID:專案的 ID。 Google Cloud
  • SERVICE_ACCOUNT_EMAIL:要驗證的服務帳戶電子郵件地址。

列出所有授予指定專案服務帳戶的角色。確認輸出內容中顯示「授予必要 IAM 角色」列出的角色。

限制公用網路存取並強化防火牆設定

限制公用網路存取並強化防火牆設定,以提升安全性。這項基本安全做法可降低權限過於寬鬆的預設防火牆規則帶來的風險。

在正式環境中,嚴格的防火牆設定可能會導致虛擬機器 (VM) 設定失敗,但這類問題不會出現在內部測試中。如果工程師不瞭解特定防火牆規則,可能難以診斷這些故障。

檢查並更新防火牆規則,盡量降低直接暴露在網際網路中的風險。如要進一步瞭解虛擬私有雲防火牆規則,請參閱「 虛擬私有雲防火牆規則」。

標準化內部網路預設設定

標準化內部網路預設設定,減少風險和設定問題。在複雜或安全防護嚴密的環境中,預設網路行為可能會造成風險或設定問題。Google 建議採用下列設定:

  • 使用區域 DNS:對於新專案,請將內部網域名稱系統 (DNS) 設為僅限區域 DNS。這種做法有助於降低潛在全球 DNS 服務中斷的影響。如要進一步瞭解如何使用區域 DNS,請參閱「區域 DNS 使用總覽」。
  • 停用外部 IP 位址:盡可能停用外部 IP 位址。停用 IP 位址前,請務必先在測試環境中仔細規劃和測試,因為部分服務 (例如代管執行個體群組 (MIG) 或含公用節點的 GKE 叢集) 需要這些位址才能運作。如要進一步瞭解如何限制公開 IP 位址,請參閱「限制 Google Cloud 上的公開 IP 位址」。

依基礎架構最佳化網路

部署作業的網路最佳做法會因基礎架構選擇而異,包括一般 GPU 或叢集 GPU。

一般 GPU 最佳做法

使用一般 GPU 時,請遵循下列網路最佳做法:

  • 使用密集配置政策:如果一般用途 GPU 執行個體未回報 physicalHost ID,請使用密集配置政策找出執行個體群組,並盡可能提升這些資源的效能。詳情請參閱「定義執行個體放置位置」。
  • 使用 Google Virtual NIC (gVNIC) 進行主機通訊:為確保效能一致,請透過 gVNIC 使用標準 TCP/IP 進行所有主機對主機通訊。如要進一步瞭解 gVNIC,請參閱「使用 Google Virtual NIC」。
  • 使用單一虛擬私有雲架構簡化設定:除非隔離需求另有規定,否則請使用標準的單一虛擬私有雲網路進行所有通訊。這項單一 VPC 建議適用於 G2、G4、A2 和 N1 系列,但 A3 Edge 例外,因為需要四個資料 VPC 和 GPUDirect-TCPX。詳情請參閱「在標準模式叢集中盡量提高 GPU 網路頻寬」。

叢集 GPU 最佳做法

使用叢集 GPU 時,請遵循下列網路最佳做法:

  • 實作多重虛擬私有雲環境:確保 GPU 對 GPU 流量隔離到專用的高頻寬虛擬私有雲,避免主機或儲存空間流量爭用頻寬。詳情請參閱「多虛擬私有雲環境」。
  • 套用 RDMA 最佳化網路設定檔:使用 Google 代管的網路設定檔,自動設定虛擬私有雲,以滿足基於融合乙太網路的遠端直接記憶體存取 (RDMA) 對低延遲的需求。詳情請參閱「特定用途的網路設定檔」。
  • 卸載基礎架構工作:使用自訂 Titanium NIC 卸載工作,例如處理網路封包和儲存空間虛擬化,為 AI 應用程式保留 CPU 週期。

最佳做法摘要

下表摘要說明本文建議的最佳做法:

主題 工作
IAM 建立明確且受限的 IAM 角色
防火牆 限制公用網路存取並強化防火牆設定
網路預設值 標準化內部網路預設設定
基礎架構 依基礎架構最佳化網路

後續步驟