管理節點集區

建立 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 叢集中新增節點集區,請完成下列步驟:

控制台

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」
  2. 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
  3. 依序選取「節點集區」>「新增節點集區」
  4. 指派節點集區的名稱。節點集區名稱一經建立即無法變更。
  5. 指定要在節點集區中建立的工作站節點數量。
  6. 選取最符合工作負載需求的機器類別,機器類別會顯示在下列設定中:
    • 機型
    • vCPU
    • 記憶體
  7. 按一下 [儲存]

API

  1. 使用互動式編輯器,透過 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 檔案,請參閱「登入」一文瞭解詳情。
  2. 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 設定檔」。
  3. 儲存檔案並結束編輯器。

查看節點集區

如要查看 Kubernetes 叢集中的現有節點集區,請完成下列步驟:

控制台

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」
  2. 在叢集清單中點選叢集。系統隨即會顯示「Cluster details」(叢集詳細資料) 頁面。
  3. 選取「節點集區」

系統會顯示叢集中執行的節點集區清單。您可以在這個頁面管理叢集的節點集區。

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 叢集中的節點集區大小,方法是擴大或縮小集區。縮減節點集區時,您無法選取要移除的特定節點。

如要調度現有叢集中的節點集區,請完成下列步驟:

控制台

  1. 在資訊主頁中,選取要編輯的叢集所在專案。
  2. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」
  3. 選取節點集區相關聯的叢集名稱。「叢集詳細資料」頁面隨即顯示。
  4. 按一下「節點集區」分頁標籤。
  5. 選取要調整大小的節點集區的「編輯」圖示,系統會顯示「編輯節點集區」提示。
  6. 更新「節點數量」欄位,反映節點集區中所需的新節點數量。您可以根據工作負載需求,增加或減少節點數量。

  7. 按一下 [儲存]

  8. 返回叢集的「節點集區」分頁,確認調整大小後的節點集區狀態為 Ready,且節點數量正確無誤。節點集區可能需要幾分鐘的時間,才能根據您的規格進行調整。

    使用控制台確認節點集區是否已準備就緒。

API

  1. 使用互動式編輯器,透過 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 伺服器資源」。
  2. 更新要調整大小的節點集區的 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 換成要在節點集區中佈建的更新工作站節點數量。

  3. 儲存檔案並結束編輯器。

  4. 檢查節點集區的設定,確認節點擴縮作業已完成:

    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 可能會保持無法排程的狀態。

刪除節點集區前,請確認您至少有三個工作站節點,確保叢集有足夠的運算空間可有效執行。

如要刪除節點集區,請完成下列步驟:

控制台

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」

  2. 按一下要刪除節點集區的叢集。

  3. 選取「節點集區」

  4. 按一下要刪除的節點集區旁的「刪除」

API

  1. 使用互動式編輯器,透過 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 伺服器資源」。
  2. nodePools 區段中移除節點集區項目。舉例來說,在下列程式碼片段中,您必須移除 machineTypeNamenamenodeCount 欄位:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    請務必移除要刪除節點集區的所有欄位。

  3. 儲存檔案並結束編輯器。