本總覽頁面說明 Google Distributed Cloud (GDC) 實體隔離 Kubernetes 叢集中,容器工作負載的營運模式。GDC 提供代管 Kubernetes 服務,支援 Kubernetes 原生容器應用程式,這些應用程式廣泛用於 Google Kubernetes Engine (GKE) 並受到支援。
本文適用於應用程式運算子群組中的開發人員,負責管理所屬機構的應用程式工作負載。詳情請參閱 GDC 氣隙式環境適用的目標對象說明文件。
適用於中斷連線環境的 Kubernetes 應用程式
GDC 上的 GKE 是一項代管式 Kubernetes 服務,預設會將許多 GKE 功能併入 GDC 宇宙。這項服務可免除自行安裝、升級、整合及執行開放原始碼 Kubernetes 的需求。您可以透過標準 KRM API 操作及維護提供的 Kubernetes 發行版本,就像其他宣告式和等冪的 Kubernetes 產品一樣。同樣地,您也可以透過 GDC 控制台、gdcloud CLI 和 Terraform 使用 GKE on GDC。如要進一步瞭解 GDC Kubernetes 叢集,請參閱「Kubernetes 叢集總覽」。如要進一步瞭解 Kubernetes 的重要概念,請參閱 GKE 說明文件中的「開始瞭解 Kubernetes」。
容器工作負載狀態
GDC 中的容器會以以下形式部署至 Kubernetes 叢集:
即使在叢集佈建後,您仍可根據容器工作負載需求,水平擴展 GDC Kubernetes 叢集節點,因應不斷變化的運算需求。
Kubernetes 提供多種內建工作負載資源,可協助您達成偏好的容器應用程式狀態。詳情請參閱 Kubernetes 工作負載說明文件。
無狀態工作負載
無狀態工作負載是指不會將資料或應用程式狀態儲存至 Kubernetes 叢集或永久儲存空間的應用程式。資料和應用程式狀態將留在用戶端,這使得無狀態應用程式更具擴充性。舉例來說,前端應用程式可以是無狀態的:您可以部署多個副本來提高可用性,並在需求量低時縮減規模,而副本不需要專屬 ID。
Kubernetes 會使用 Deployment 資源,將無狀態應用程式部署為一致且不重複的 Pod。部署作業會管理應用程式的期望狀態,例如:
- 執行應用程式的 Pod 數量。
- 要執行的容器映像檔版本。
- Pod 的標籤。
您可以更新 Deployment 資源的 Pod 規格,動態變更所需狀態。
無狀態應用程式與有狀態工作負載不同,後者會使用永久儲存空間儲存資料和應用程式狀態。
具狀態的工作負載
有狀態工作負載是指會將資料儲存至永久磁碟儲存空間的應用程式,供伺服器、用戶端和其他應用程式使用。有狀態應用程式的例子包括資料庫或鍵/值儲存庫,其他應用程式會將資料儲存至這些儲存庫,並從中擷取資料。您必須為有狀態的應用程式佈建永久儲存空間,才能使用。
Kubernetes 會使用 StatefulSet 資源部署有狀態應用程式。StatefulSet 資源中的 Pod 無法互換:每個 Pod 都有專屬 ID,無論排程位置為何,都會維持不變。
有狀態應用程式與無狀態工作負載不同,後者不會在工作階段之間將用戶端資料儲存至伺服器。
容器的永久儲存空間
GDC 會透過PersistentVolumeClaim
(PVC) 物件提供永久區塊儲存空間。PVC 是儲存空間要求,由 Pod 物件參照。Pod 是一組包含一或多個容器的群組,並共用儲存空間和網路資源。PVC 的生命週期與 Pod 無關,因此可存續於單一 Pod 之外。
您可以為有狀態工作負載動態佈建永久儲存空間,以便視需要建立基礎磁碟區。在 GDC 中,您需要建立預先安裝的 StorageClass 物件 standard-rwo,才能設定動態佈建。standard-rwo 物件是 ReadWriteOnce (RWO) 區塊儲存空間級別,可讓磁碟區一次只存取一個節點。
您也可以建立 VolumeSnapshot 物件,在特定時間點複製容器應用程式的儲存空間磁碟區,不必建立全新的磁碟區。舉例來說,資料庫管理員可以建立磁碟區快照,在執行編輯或刪除修改作業前備份資料庫。