建立 Google Distributed Cloud (GDC) 零網路連線 Kubernetes 叢集時,您指定的節點數量和類型會建立叢集的第一個節點集區。隨著現有叢集的運算需求變化,您可以執行下列節點集區工作:
新增節點集區:隨著叢集工作負載需求增加,新增節點集區。
查看節點集區:查看現有節點集區的特徵和狀態。
調整節點集區大小:手動擴大或縮小節點集區,以因應工作負載流量波動。
刪除節點集區:如果叢集工作負載的需求減少,或您想刪除不再適合容器作業的機器類型,請移除節點集區。
如要進一步瞭解叢集中的節點集區,請參閱「關於節點」一文。
本文適用於應用程式運算子群組中的應用程式開發人員,以及平台管理員群組中的 IT 管理員,這些人員負責管理所屬機構的 Kubernetes 叢集。詳情請參閱 GDC air-gapped 說明文件適用對象。
事前準備
如要完成本文中的工作,您必須具備下列資源和角色:
如要查看及管理共用 Kubernetes 叢集中的節點集區,請要求機構 IAM 管理員授予下列角色:
- 使用者叢集管理員 (
user-cluster-admin) - 使用者叢集節點檢視者 (
user-cluster-node-viewer)
這類角色不會繫結至命名空間。
- 使用者叢集管理員 (
如要在標準 Kubernetes 叢集中查看及管理節點集區,請要求機構的 IAM 管理員授予您標準叢集管理員 (
standard-cluster-admin) 角色。這個角色會繫結至專案命名空間。如要對 Kubernetes 叢集執行指令,請確認您具備下列資源:
找出 Kubernetes 叢集名稱,或向平台管理員群組成員詢問叢集名稱。
如果沒有 Kubernetes 叢集的 kubeconfig 檔案,請登入並產生該檔案。
請使用 Kubernetes 叢集的 kubeconfig 路徑,替換這些操作說明中的
KUBERNETES_CLUSTER_KUBECONFIG。
新增節點集區
如要在現有 Kubernetes 叢集中新增節點集區,請完成下列步驟:
控制台
- 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」。
- 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
- 依序選取「節點集區」>「新增節點集區」。
- 指派節點集區的名稱。節點集區名稱一經建立即無法變更。
- 指定要在節點集區中建立的工作站節點數量。
- 選取最符合工作負載需求的機器類別,機器類別會顯示在下列設定中:
- 機型
- vCPU
- 記憶體
- 按一下 [儲存]。
API
使用互動式編輯器,透過
kubectlCLI 開啟Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVER更改下列內容:
KUBERNETES_CLUSTER_NAME:叢集名稱。KUBERNETES_CLUSTER_NAMESPACE:叢集的命名空間。如果是共用叢集,請使用platform命名空間。如果是標準叢集,請使用叢集的專案命名空間。MANAGEMENT_API_SERVER:區域 API 伺服器的 kubeconfig 路徑,Kubernetes 叢集即是代管於此。如果您尚未在目標區域中為 API 伺服器產生 kubeconfig 檔案,請參閱「登入」一文瞭解詳情。
在
nodePools區段中新增項目:nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEME更改下列內容:
MACHINE_TYPE:節點集區工作站節點的機型。如要瞭解可設定的項目,請參閱可用的機器類型。NODE_POOL_NAME:節點集區的名稱。NUMBER_OF_WORKER_NODES:要在節點集區中佈建的 worker 節點數量。TAINTS:要套用至這個節點集區節點的 taint。此為選填欄位。LABELS:要套用至這個節點集區節點的標籤。其中包含鍵/值組合清單。這是選填欄位。GPU_PARTITION_SCHEME:GPU 分割配置,如果您執行的是 GPU 工作負載。例如,mixed-2。如果未設定這個欄位,GPU 就不會分割。如要瞭解可用的多執行個體 GPU (MIG) 設定檔,請參閱「支援的 MIG 設定檔」。
儲存檔案並結束編輯器。
查看節點集區
如要查看 Kubernetes 叢集中的現有節點集區,請完成下列步驟:
控制台
- 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」。
- 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
- 選取「節點集區」。
系統會顯示叢集中執行的節點集區清單。您可以在這個頁面管理叢集的節點集區。
API
查看特定 Kubernetes 叢集的節點集區:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatuses更改下列內容:
KUBERNETES_CLUSTER_NAME:叢集名稱。KUBERNETES_CLUSTER_NAMESPACE:叢集的命名空間。如果是共用叢集,請使用platform命名空間。如果是標準叢集,請使用叢集的專案命名空間。
輸出結果會與下列內容相似:
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]
調整節點集區大小
您可以手動調整 Kubernetes 叢集中的節點集區大小,方法是擴大或縮小集區。縮減節點集區時,您無法選取要移除的特定節點。
如要調度現有叢集中的節點集區,請完成下列步驟:
控制台
- 在資訊主頁中,選取要編輯的叢集所在專案。
- 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」。
- 選取節點集區相關聯的叢集名稱。「叢集詳細資料」頁面隨即顯示。
- 按一下「節點集區」分頁標籤。
- 選取要調整大小的節點集區的「編輯」edit圖示,系統會顯示「編輯節點集區」提示。
更新「節點數量」欄位,反映節點集區中所需的新節點數量。您可以根據工作負載需求,增加或減少節點數量。
按一下 [儲存]。
返回叢集的「節點集區」分頁,確認調整大小後的節點集區狀態為
Ready,且節點數量正確無誤。節點集區可能需要幾分鐘的時間,才能根據您的規格進行調整。
API
使用互動式編輯器,透過 kubectl CLI 開啟
Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVER更改下列內容:
KUBERNETES_CLUSTER_NAME:代管節點集區的叢集名稱。KUBERNETES_CLUSTER_NAMESPACE:叢集的命名空間。如果是共用叢集,請使用platform命名空間。如果是標準叢集,請使用叢集的專案命名空間。MANAGEMENT_API_SERVER:區域 API 伺服器的 kubeconfig 路徑,Kubernetes 叢集即是代管於此。如果尚未在目標區域中為 API 伺服器產生 kubeconfig 檔案,請參閱「區域管理 API 伺服器資源」。
更新要調整大小的節點集區的
nodeCount欄位:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODES將
NUMBER_OF_WORKER_NODES換成要在節點集區中佈建的更新工作站節點數量。儲存檔案並結束編輯器。
檢查節點集區的設定,確認節點擴縮作業已完成:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE -o json \ --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatuses確認
readyNodes數字反映您為節點集區設定的節點數量。節點集區可能需要幾分鐘的時間,才能根據您的規格調整大小。
刪除節點集區
刪除節點集區也會一併刪除節點與節點路徑,這些節點會撤銷並重新排定在節點上執行的任何 Pod。如果 Pod 具有特定的節點選取器,當叢集中沒有其他節點能滿足條件時,Pod 可能會保持無法排程的狀態。
刪除節點集區前,請確認您至少有三個工作站節點,確保叢集有足夠的運算空間可有效執行。
如要刪除節點集區,請完成下列步驟:
控制台
在導覽選單中,依序選取「Kubernetes Engine」>「叢集」。
按一下要刪除節點集區的叢集。
選取「節點集區」。
按一下要刪除的節點集區旁的「刪除」delete。
API
使用互動式編輯器,透過 kubectl CLI 開啟
Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVER更改下列內容:
KUBERNETES_CLUSTER_NAME:叢集名稱。KUBERNETES_CLUSTER_NAMESPACE:叢集的命名空間。如果是共用叢集,請使用platform命名空間。如果是標準叢集,請使用叢集的專案命名空間。MANAGEMENT_API_SERVER:區域 API 伺服器的 kubeconfig 路徑,Kubernetes 叢集即是代管於此。如果尚未在目標區域中為 API 伺服器產生 kubeconfig 檔案,請參閱「區域管理 API 伺服器資源」。
從
nodePools區段中移除節點集區項目。舉例來說,在下列程式碼片段中,您必須移除machineTypeName、name和nodeCount欄位:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3請務必移除要刪除節點集區的所有欄位。
儲存檔案並結束編輯器。