GDC 中的 Kubernetes 叢集

本文說明 Google Distributed Cloud (GDC) Air-gapped 中提供的 Kubernetes 叢集選項和功能。Kubernetes 叢集提供代管 Kubernetes 服務,也就是 Google Kubernetes Engine (GKE),可讓您使用業界標準的 Kubernetes 方法,部署及執行容器工作負載。

本文適用於平台管理員群組中的 IT 管理員,以及應用程式運算子群組中的應用程式開發人員,這些對象負責管理所屬機構的容器工作負載。詳情請參閱 GDC air-gapped 的目標對象說明文件

在已中斷連線的環境中使用 GKE

GDC 上的 GKE 是代管式 Kubernetes 服務,可將 GKE 的核心功能帶到離線環境。為方便說明,由 GDC 上的 GKE 管理的叢集稱為 Kubernetes 叢集。如要進一步瞭解 Kubernetes 概念,請參閱「開始瞭解 Kubernetes」。

在 GDC 上使用 GKE 時,您可以在中斷連線的環境中建立及管理容器工作負載,與在公有雲 Google Cloud中使用 GKE 的方式類似。

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

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

如要進一步瞭解 GKE 和公開發布的完整功能集 Google Cloud,請參閱「探索 GKE 說明文件」。

Kubernetes 叢集的優點

GDC 上的 GKE 可為 Kubernetes 叢集帶來多項優點,例如:

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

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

GDC 叢集架構

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

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

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

下圖顯示 Kubernetes 叢集的架構:

Kubernetes 叢集由控制層、節點和服務組成。

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

  • 控制層,包括 API 伺服器和預先定義的服務,例如儲存空間和預設 Pod 排程。
  • 執行容器工作負載的工作站節點
  • GDC 服務,例如 VPC 網路負載平衡,由 GKE on GDC 代管服務提供。

關於控制層

控制層會執行 Kubernetes API 伺服器、排程器和核心資源控制器等程序。GKE on GDC 會管理控制層的生命週期,包括叢集建立和刪除等作業。管理內容包含替控制層上執行的 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 中的物件。

管理工作站節點

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

關於節點

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

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

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

節點會分組到節點集區,這是叢集內的一組節點,具有相同的設定和特性。您無法設定節點集區中的單一節點。

當您要排程的 pod 比其他 pod 需要更多資源 (例如更多記憶體或本機磁碟空間) 時,自訂節點集區就非常實用。如要進一步控管 Pod 的排程,請使用節點 taint

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

Kubernetes 叢集設定

您可以使用 GKE on GDC 服務,透過下列叢集設定管理機構中的容器工作負載:

  • 共用叢集:範圍涵蓋多個專案的 Kubernetes 叢集,不屬於單一專案管理,而是附加至專案。
  • 標準叢集:專案範圍的 Kubernetes 叢集,可管理專案內的叢集資源,但無法跨越多個專案。

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

叢集中的 GPU 工作負載

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

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

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

GDC 上的 GKE 限制

下列 GKE 功能是 GKE on GDC 的限制,無法使用:

  • 自動化叢集管理
    • 自動修復節點: 叢集監控功能會在節點狀況不佳時自動修正,減少手動介入的需求。
    • 自動升級叢集:自動升級叢集控制層和工作站節點的 Kubernetes 版本,確保叢集執行支援且安全的版本。
    • 叢集自動調度資源: 根據工作負載需求新增或移除節點,自動調整叢集大小。
    • GKE Autopilot: 全代管作業模式,可處理基礎架構管理作業。
    • 垂直自動調度 Pod 資源:根據歷史用量,自動調整叢集 Pod 的 CPU 和記憶體要求與限制。
  • 多雲端
    • 連結多雲端叢集: 在其他雲端環境中建立叢集,並透過Google Cloud 控制台管理。
    • 連線閘道: 使用 Google Cloud 身分驗證,連線至其他雲端供應商的叢集。
    • 多叢集 Ingress: 在不同叢集部署共用的負載平衡資源。
  • 作業

後續步驟