節點集區是 Kubernetes 叢集中具有相同設定的一組節點。節點集區會使用 NodePool 規格。集區中的每個節點都具有 Kubernetes 節點標籤,並以節點集區的名稱做為值。根據預設,所有新的節點集區都會執行與控制層相同的 Kubernetes 版本。
建立使用者叢集時,您指定的節點數量和類型會建立叢集的第一個節點集區。您可以將其他不同大小和類型的節點集區加入叢集。任何特定節點集區中的所有節點都彼此相同。
當您要排程的 pod 比其他 pod 需要更多資源 (例如更多記憶體或本機磁碟空間) 時,自訂節點集區就非常實用。如要進一步控管 Pod 的排程,可以使用節點 taint。
您可以個別建立及刪除節點集區,而不會影響整個叢集。您無法設定節點集區中的單一節點。任何配置更改都會影響節點集區中的所有節點。
您可以擴大或縮小集區,調整叢集中的節點集區大小。縮減節點集區是自動化程序,可減少集區大小,而 GDC 系統會自動排空並逐出任意節點。縮減節點集區時,您無法選取要移除的特定節點。
事前準備
如要管理使用者叢集中的節點集區,您必須具備使用者叢集管理員角色 (user-cluster-admin 角色)。
新增節點集區
從 GDC 控制台建立使用者叢集時,您可以在叢集建立初始化前,自訂預設節點集區並建立其他節點集區。如要將節點集區新增至現有使用者叢集,請完成下列步驟:
控制台
- 在導覽選單中,選取「叢集」。
- 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
- 依序選取「節點集區」>「新增節點集區」。
- 指派節點集區的名稱。節點集區建立後,名稱就無法修改。
- 指定要在節點集區中建立的工作站節點數量。
- 選取最符合工作負載需求的機器類別,機器類別會顯示在下列設定中:
- 機型
- vCPU
- 記憶體
- 選用:新增 Kubernetes 鍵/值組合標籤,整理節點集區的資源。
- 按一下 [儲存]。
API
使用互動式編輯器,透過
kubectlCLI 開啟Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG更改下列內容:
USER_CLUSTER_NAME:使用者叢集的名稱。ADMIN_CLUSTER_KUBECONFIG:管理員叢集的 kubeconfig 檔案路徑。
在
nodePools區段中新增項目:nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS更改下列內容:
MACHINE_TYPE:節點集區工作站節點的機型。如要查看可設定的項目,請參閱可用的機器類型。NODE_POOL_NAME:節點集區的名稱。NUMBER_OF_WORKER_NODES:要在節點集區中佈建的工作站節點數量。TAINTS:要套用至這個節點集區節點的 taint。此為選填欄位。LABELS:要套用至這個節點集區節點的標籤。其中包含鍵/值組合清單。這是選填欄位。
儲存檔案並結束編輯器。
查看節點集區
如要查看使用者叢集中的現有節點集區,請完成下列步驟:
控制台
- 在導覽選單中,選取「叢集」。
- 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
- 選取「節點集區」。
畫面上會顯示叢集中執行的節點集區清單。您可以在這個頁面管理叢集的節點集區。
API
查看特定使用者叢集的節點集區:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \ jq .status.workerNodePoolStatuses輸出結果會與下列內容相似:
[ { "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 } ]
刪除節點集區
刪除節點集區也會一併刪除節點與節點路徑,這些節點會撤銷並重新排定在節點上執行的任何 Pod。如果 Pod 具有特定的節點選取器,當叢集中沒有其他節點能滿足條件時,Pod 可能會保持無法排程的狀態。
刪除節點集區前,請確認您至少有三個工作站節點,確保叢集有足夠的運算空間可有效執行。
如要刪除節點集區,請完成下列步驟:
主控台
在導覽選單中,選取「叢集」。
按一下要刪除節點集區的叢集。
選取「節點集區」。
按一下要刪除的節點集區旁的「刪除」delete。
API
使用互動式編輯器,透過
kubectlCLI 開啟Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG更改下列內容:
USER_CLUSTER_NAME:使用者叢集的名稱。ADMIN_CLUSTER_KUBECONFIG:管理員叢集的 kubeconfig 檔案路徑。
從
nodePools區段中移除節點集區項目。舉例來說,在下列程式碼片段中,您必須移除machineTypeName、name和nodeCount欄位:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3請務必移除要刪除節點集區的所有欄位。
儲存檔案並結束編輯器。
工作站節點機器類型
在 Google Distributed Cloud (GDC) 實體隔離裝置中建立使用者叢集時,您會建立節點集區,負責在叢集中執行容器工作負載。您可以根據容器工作負載需求佈建節點,並隨著需求變化更新節點。
GDC 為工作站節點提供預先定義的機器類型,您可以在新增節點集區時選取。
可用的機器類型
GDC 會定義使用者叢集節點的機器類型,並提供一些參數,包括 CPU、記憶體和 GPU。GDC 提供多種機器類型,適用於不同用途。舉例來說,使用者叢集會使用 n2-standard-2-gdc 處理一般用途的容器工作負載。您也可以找到記憶體最佳化用途的機器類型,例如 n2-highcpu-8-gdc。如果您打算執行深度學習容器,就必須佈建 GPU 機器,例如 a2-highgpu-1g-gdc。
以下列出所有可供使用者叢集工作站節點使用的 GDC 預先定義機器類型:
| 名稱 | vCPU | 記憶體 | GPU 數量 |
|---|---|---|---|
| n2-standard-2-gdc | 2 | 8G | 不適用 |
| n2-standard-4-gdc | 4 | 16G | 不適用 |
| n2-highmem-4-gdc | 4 | 32G | 不適用 |
| n2-highcpu-8-gdc | 8 | 8G | 不適用 |
| n2-standard-8-gdc | 8 | 32G | 不適用 |
| n2-highmem-8-gdc | 8 | 64G | 不適用 |
| a2-highgpu-1g-gdc | 12 | 85G | 1 |
| a2-ultragpu-1g-gdc | 12 | 170G | 1 |