GDC 中的 Kubernetes 叢集

本文說明 Google Distributed Cloud (GDC) 實體隔離方案提供的 Kubernetes 叢集選項和功能。Kubernetes 叢集透過 Google Kubernetes Engine (GKE) 提供代管 Kubernetes 服務,讓您使用業界標準 Kubernetes 方法部署及執行容器工作負載。

本文適用於平台管理員群組中的 IT 管理員,以及應用程式營運商群組中的應用程式開發人員,他們負責管理組織內的容器工作負載。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。

在未連線環境中使用 GKE

GDC 上的 GKE 是代管 Kubernetes 服務,可將 GKE 的核心功能和特色帶到中斷連線的環境。在說明文件中,由 GDC 上的 GKE 代管的叢集稱為「Kubernetes 叢集」。如要進一步瞭解 Kubernetes 概念,請參閱「開始瞭解 Kubernetes」。

GKE on GDC 可讓您在未連線的環境中建立及管理容器工作負載,就像在公用 Google Cloud中使用 GKE 一樣。

下表比較 GDC 和 Google Cloud中的叢集:

功能 說明 GDC 託管的 GKE GKE on Google Cloud
完全中斷連線 可在未連上網際網路的環境中運作。 是 否
備份解決方案 這項服務可建立叢集資料和設定的副本,確保資料受到保護,並在發生故障、錯誤或網路攻擊時復原。 Backup for GDC GKE 備份
整合式記錄與監控功能 這項服務結合了記錄收集與分析功能,以及關鍵成效指標監控功能,可全面掌握叢集行為。 Prometheus、Grafana 和 Loki Cloud Logging 和 Cloud Monitoring
代管 Container Registry 這項服務可託管及整理容器映像檔,並處理映像檔的基礎架構、可用性和安全性。 代管 Harbor 服務 Artifact Registry
容器隔離 可將容器應用程式及其依附元件分開,並與主機系統區隔。 是 是
支援 GPU 和 TPU 高效能運算單元,可提升處理能力。 僅限 GPU GPU 和 TPU
水平 Pod 自動調度資源 根據觀察到的指標 (例如 CPU 或記憶體用量),自動調整 Deployment 或其他工作負載中的 Pod 副本數量。 是 是
Linux 容器 在 Linux 主機上執行應用程式的獨立環境。 是 是
叢集 UI 圖形介面,提供容易使用的視覺化方式,方便管理及監控叢集。 僅限共用叢集 是
叢集資源的使用者介面 圖形介面,提供容易使用的視覺化方式,可管理及監控叢集的容器工作負載。 僅供檢視 是

如要進一步瞭解 GKE,以及公開預先發布版 Google Cloud提供的完整功能,請參閱「探索 GKE 說明文件」。

Kubernetes 叢集的優點

GDC 上的 GKE 為 Kubernetes 叢集提供重要優勢,例如:

  • 多叢集生命週期管理:在 GDC 中同時部署多個叢集,為容器工作負載提供各種託管執行個體。
  • 完整支援各種 Kubernetes 發布管道:建立與最新標準 Kubernetes 功能搭配的叢集。
  • 費用可見度:監控即時用量和洞察資料,持續監控 Kubernetes 費用。
  • 多團隊管理:授予多個使用者群組 Kubernetes 叢集存取權,以便彈性管理邊界。
  • 自動化 Kubernetes 工作流程:仰賴自動節點佈建和水平自動調度 Pod 資源,順暢管理容器工作負載。

GDC 上的 GKE 預設提供上述所有功能,可與代管 Kubernetes 服務建立的叢集搭配使用。

GDC 叢集架構

Kubernetes 叢集在邏輯上彼此分隔,以提供不同的故障域和隔離保證。在某些情況下,兩者甚至會實體分隔。

您可以將 Kubernetes 叢集設為共用叢集或標準叢集。共用叢集會橫跨多項專案。「標準叢集」的範圍限於單一專案。詳情請參閱「Kubernetes 叢集設定」。

Kubernetes 叢集包含控制層和稱為節點的工作站機器。控制層和節點會構成 Kubernetes 叢集自動化調度管理系統。GDC 上的 GKE 會管理叢集的整個底層基礎架構,包括控制層和所有系統元件。您必須負責管理執行容器化工作負載的 worker 節點。

下圖顯示 Kubernetes 叢集的架構:

Kubernetes 叢集包含控制層、節點和服務。

下圖顯示 Kubernetes 叢集,其中包含下列元件:

關於控制層

控制層會執行 Kubernetes API 伺服器、排程器和核心資源控制器等程序。GDC 上的 GKE 會管理控制層生命週期,包括叢集建立和刪除等作業。包括升級控制層執行的 Kubernetes 版本。GDC 會自動執行這項作業,您也可以要求手動執行,以便在自動排程前升級。

控制層和 Kubernetes API

控制層是叢集的統一端點。您可以透過 Kubernetes API 呼叫與控制層互動。控制層會執行 Kubernetes API 伺服器程序 (或 kube-apiserver) 來處理 API 要求。您可以透過下列方式發出 Kubernetes API 呼叫:

  • 直接通話:KRM
  • 間接呼叫:Kubernetes 指令列用戶端,例如 kubectl CLI 或 GDC 控制台。

API 伺服器程序是叢集所有通訊作業的中樞。所有內部叢集元件 (例如節點、系統程序和應用程式控制器) 都會做為 API 伺服器的用戶端。

API 要求會向 Kubernetes 說明您為叢集物件選擇的狀態。Kubernetes 會嘗試持續維持該狀態。Kubernetes 可讓您以「命令式」或「宣告式」方式設定 API 中的物件。

worker 節點管理

控制層會管理叢集所有節點上執行的作業,控制層會排定工作負載,並管理工作負載的生命週期、資源調度和升級。控制層也會管理這些工作負載的網路和儲存空間資源。控制層和節點會使用 Kubernetes API 互相通訊。

關於節點

節點是執行容器化應用程式和其他工作負載的工作站機器。個別機器是 GDC 上的 GKE 建立的虛擬機器 (VM)。控制層會管理並接收各節點主動回報的狀態更新。

節點會執行必要服務,讓構成叢集工作負載的容器維持運作。包括執行階段和 Kubernetes 節點代理程式 (或 kubelet),後者會與控制層通訊,並負責啟動及執行排定在節點上的容器。

GDC 上的 GKE 也會執行多個系統容器,這些容器會以個別節點代理程式的形式運作,稱為 DaemonSet,可提供記錄檔收集和叢集內網路連線等功能。

節點會分組為節點集區,也就是叢集內共用相同設定和特性的一組節點。您無法設定節點集區中的單一節點。

如果排定的 Pod 需要比其他 Pod 更多的資源 (例如更多記憶體或本機磁碟空間),自訂節點集區就非常實用。如需進一步控管排定 Pod 的作業,可以使用節點污點。

詳情請參閱「管理節點集區」。

Kubernetes 叢集設定

GDC 上的 GKE 服務提供下列叢集設定,可管理組織中的容器工作負載:

  • 共用叢集:組織範圍的 Kubernetes 叢集,橫跨多個專案,且不受單一專案管理,而是附加至這些專案。
  • Standard 叢集:專案範圍內的 Kubernetes 叢集,可管理專案中的叢集資源,無法跨多個專案。

您可以根據管理容器工作負載的需求,選擇最合適的叢集。詳情請參閱「Kubernetes 叢集設定」。

叢集中的 GPU 工作負載

GDC 為 Kubernetes 叢集提供 NVIDIA GPU 支援,並將 GPU 裝置做為使用者工作負載執行。舉例來說,您可能偏好在 GPU 環境中執行人工智慧 (AI) 和機器學習 (ML) 筆記本。您必須為叢集佈建 GPU 機器,才能設定叢集支援 GPU 裝置。如需 GDC 中 Kubernetes 叢集支援的機器類型清單,請參閱「叢集節點機器」。

GPU 是以靜態方式分配。前四個 GPU 一律專用於預先訓練的 AI 和機器學習 API 等工作負載。這些 GPU 不會在 Kubernetes 叢集上執行。其餘 GPU 則可供 Kubernetes 叢集使用。AI 和機器學習 Notebook 會在 Kubernetes 叢集上執行。

請務必為正確的叢集類型分配 GPU 機器,讓 AI 和機器學習 API 等元件在叢集中執行。詳情請參閱「建立共用叢集」或「建立標準叢集」。

GDC 上的 GKE 限制

GDC 上的 GKE 不支援下列 GKE 功能:

  • 自動化叢集管理
    • 自動修復節點:GDC 中的 Kubernetes 叢集無法在節點健康狀態不佳時自動修復。
    • 自動升級叢集:GDC Kubernetes 叢集無法在 Kubernetes 版本更新時自動升級節點。您必須手動升級叢集,才能納入新的 Kubernetes 更新。
    • 叢集自動調度資源:GDC 中的 Kubernetes 叢集無法根據工作負載需求,自動調整節點大小。
    • GKE Autopilot:GDC 不提供全代管作業模式,無法讓 Kubernetes 叢集處理基礎架構。
    • 垂直自動調度 Pod 資源:GDC Kubernetes 叢集內 Pod 的 CPU 和記憶體要求與限制,無法根據工作負載需求自動調整。
  • 多雲端
    • 附加多雲端叢集:GDC 無法管理在其他雲端環境中建立的 Kubernetes 叢集。
    • Connect 閘道:GDC 無法使用您的 Google Cloud 身分,連結其他雲端服務供應商的叢集進行驗證。
    • 多叢集 Ingress:GDC 中的 Kubernetes 叢集無法跨叢集共用負載平衡資源。
  • 作業

後續步驟