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