建立 Google Distributed Cloud (GDC) 實體隔離 Kubernetes 叢集時,您指定的節點數量和類型會建立叢集的第一個節點集區。當現有叢集的運算需求改變時,您可以執行下列節點集區工作:
新增節點集區:隨著叢集工作負載需求增加,新增節點集區。
查看節點集區:查看現有節點集區的特性和狀態。
調整節點集區大小:手動擴充或縮減節點集區,因應工作負載流量波動。
刪除節點集區:如果叢集工作負載需求減少,或您想刪除不再適合容器作業的機器類型,請移除節點集區。
如要進一步瞭解叢集中的節點集區,請參閱「關於節點」。
本文適用對象為應用程式操作員群組中的應用程式開發人員,以及平台管理員群組中的 IT 管理員,負責管理組織內的 Kubernetes 叢集。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
如要完成本文件中的工作,您必須要求必要權限並準備環境。
要求 IAM 角色
您必須具備特定角色,才能取得管理 Kubernetes 叢集中節點集區所需的權限。您需要的角色取決於您是在組織範圍的共用叢集,還是在專案範圍的標準叢集內工作。詳情請參閱「Kubernetes 叢集設定」。
共用叢集角色
如要建立、刪除、編輯或查看共用叢集的節點集區,請與 IAM 機構組織管理員聯絡,要求取得使用者叢集管理員 (user-cluster-admin) 角色。這個角色未繫結至命名空間。
標準叢集角色
請與 IAM 專案管理員聯絡,要求下列角色:
標準叢集管理員 (
standard-cluster-admin):建立、刪除、編輯或查看標準叢集的節點集區。叢集開發人員 (
cluster-developer):建立、刪除、編輯或查看標準叢集。必須具備這個角色,才能透過 GDC 控制台查看叢集的節點集區詳細資料。
這些角色會繫結至專案命名空間。
準備環境
如要使用 API 對 Kubernetes 叢集執行指令,請確認您具備下列資源:
找出 Kubernetes 叢集名稱,或向平台管理員群組成員詢問叢集名稱。
請使用 Kubernetes 叢集名稱取代這些操作說明中的
KUBERNETES_CLUSTER_NAME。登入並產生 Kubernetes 叢集的 Management API 伺服器 kubeconfig 檔案。
請使用 Management API 伺服器的 kubeconfig 路徑,取代這些操作說明中的
MANAGEMENT_API_SERVER。
新增節點集區
如要將節點集區新增至現有的 Kubernetes 叢集,請完成下列步驟:
控制台
在專案挑選器中,選取專案或組織。
標準叢集的範圍為專案,共用叢集的範圍則為組織。選取正確的範圍,即可查看適當的 Kubernetes 叢集類型。
在導覽選單中,依序選取 「Kubernetes Engine」 > 「叢集」。
在叢集清單中,按一下叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
依序選取「Node pools」(節點集區) >「Add node pool」(新增節點集區)。
為節點集區命名。節點集區建立後即無法修改名稱。
指定要在節點集區中建立的 worker 節點數量。
請依據工作負載需求,選取最合適的機器類別。機器類別會顯示在下列設定中:
- 機型
- 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:託管 Kubernetes 叢集的可用區 API 伺服器 kubeconfig 路徑。
在
nodePools區段中新增項目:nodePools: # Several lines of code are omitted here. - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEME更改下列內容:
MACHINE_TYPE:節點集區 worker 節點的機型。請參閱可用的機型,瞭解可設定的項目。NODE_POOL_NAME:節點集區的名稱。NUMBER_OF_WORKER_NODES:要在節點集區中佈建的 worker 節點數量。TAINTS:要套用至這個節點集區節點的 taint。這是選填欄位。LABELS:要套用至這個節點集區節點的標籤。其中包含鍵/值組合清單。這是選填欄位。GPU_PARTITION_SCHEME:GPU 分割配置 (如果您執行 GPU 工作負載)。例如,mixed-2。如未設定這個欄位,GPU 就不會分區。如要瞭解可用的多實體 GPU (MIG) 設定檔,請參閱「支援的 MIG 設定檔」。
儲存檔案並結束編輯器。
查看節點集區
如要查看 Kubernetes 叢集中的現有節點集區,請完成下列步驟:
控制台
在專案挑選器中,選取專案或組織。
標準叢集的範圍為專案,共用叢集的範圍則為組織。選取正確的範圍,即可查看適當的 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 叢集類型。
在資訊主頁中,選取要編輯的叢集所在的專案。
在導覽選單中,依序選取 「Kubernetes Engine」 > 「叢集」。
選取與節點集區相關聯的叢集名稱。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
按一下「Node pools」(節點集區) 分頁標籤。
選取要調整大小的節點集區,然後按一下「Edit」(編輯) 圖示 edit。系統會顯示「Edit node pool」(編輯節點集區) 提示。
更新「Number of nodes」(節點數量) 欄位,反映節點集區所需的新節點數量。您可以依據工作負載需求,增加或減少節點數量。
按一下 [儲存]。
返回叢集的「Node pools」(節點集區) 分頁,確認調整大小後的節點集區狀態為
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:託管 Kubernetes 叢集的可用區 API 伺服器 kubeconfig 路徑。
更新要調整大小的節點集區
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替換為要在節點集區中佈建的 worker 節點更新數量。儲存檔案並結束編輯器。
檢查節點集區的設定,確認節點已完成資源調度:
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 可能會維持在無法排程的狀態。
刪除節點集區前,請確認至少有三個 worker 節點,確保叢集有足夠的運算空間,可有效運作。
如要刪除節點集區,請完成下列步驟:
控制台
在專案挑選器中,選取專案或組織。
標準叢集的範圍為專案,共用叢集的範圍則為組織。選取正確的範圍,即可查看適當的 Kubernetes 叢集類型。
在導覽選單中,依序選取 「Kubernetes Engine」 > 「叢集」。
按一下託管要刪除節點集區的叢集。
選取「節點集區」。
按一下要刪除的節點集區旁的 delete「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:託管 Kubernetes 叢集的可用區 API 伺服器 kubeconfig 路徑。
從
nodePools區段中移除節點集區項目。舉例來說,在下列程式碼片段中,您必須移除machineTypeName、name和nodeCount欄位:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3請務必移除要刪除的節點集區的所有欄位。
儲存檔案並結束編輯器。