GDC 中的容器工作負載

本總覽頁面說明 Google Distributed Cloud (GDC) 無網路連線裝置 Kubernetes 叢集中,容器工作負載的作業模式。GDC 提供代管 Kubernetes 服務,支援 Kubernetes 原生容器應用程式,這些應用程式廣泛用於 Google Kubernetes Engine (GKE) 並受到支援。

本頁面適用於應用程式運算子群組中的開發人員,他們負責管理所屬機構的應用程式工作負載。

適用於中斷連線環境的 Kubernetes 應用程式

GDC 上的 GKE 是一項代管式 Kubernetes 服務,預設會將許多 GKE 功能整合到 GDC 裝置中。這項服務可讓您不必自行安裝、升級、整合及執行開放原始碼 Kubernetes。您可以透過標準 KRM API 操作及維護提供的 Kubernetes 發行版本,就像其他聲明式和等冪的 Kubernetes 產品一樣。同樣地,GDC 上的 GKE 是透過 GDC 控制台、gdcloud CLI 和 Terraform 提供。如要進一步瞭解 Kubernetes 的重要概念,請參閱 GKE 說明文件中的「開始瞭解 Kubernetes」。

容器工作負載狀態

GDC 中的容器會以以下形式部署至 Kubernetes 叢集:

您可以根據容器工作負載的需求擴充 GDC Kubernetes 叢集節點,即使在叢集佈建後,也能隨著運算需求變化進行調整。

Kubernetes 提供多種內建工作負載資源,可協助您達成偏好的容器應用程式狀態。詳情請參閱 Kubernetes 工作負載說明文件。

無狀態工作負載

無狀態工作負載是指不會將資料或應用程式狀態儲存到 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-rwoReadWriteOnce (RWO) 區塊儲存空間類別。磁碟區一次只能由一個節點存取。這個儲存空間類別提供每 GiB 3 IOPS 的每秒輸入/輸出作業數 (IOPS) 保證和限制。

  • system-performance-rwoReadWriteOnce效能區塊儲存空間類別。這個儲存空間類別是 RWO 儲存空間的效能提升版,可保證 IOPS,且每 GiB 的 IOPS 限制為 30。

您也可以建立 VolumeSnapshot 物件,在特定時間點複製容器應用程式的儲存空間磁碟區,不必建立全新的磁碟區。舉例來說,資料庫管理員可以建立磁碟區快照,在執行編輯或刪除修改作業前備份資料庫。

後續步驟