管理節點集區

節點集區是 Kubernetes 叢集中具有相同設定的一組節點。節點集區會使用 NodePool 規格。集區中的每個節點都具有 Kubernetes 節點標籤,並以節點集區的名稱做為值。根據預設,所有新的節點集區都會執行與控制層相同的 Kubernetes 版本。

建立使用者叢集時,您指定的節點數量和類型會建立叢集的第一個節點集區。您可以將其他不同大小和類型的節點集區加入叢集。任何特定節點集區中的所有節點都彼此相同。

當您要排程的 pod 比其他 pod 需要更多資源 (例如更多記憶體或本機磁碟空間) 時,自訂節點集區就非常實用。如要進一步控管 Pod 的排程,可以使用節點 taint。

您可以個別建立及刪除節點集區,而不會影響整個叢集。您無法設定節點集區中的單一節點。任何配置更改都會影響節點集區中的所有節點。

您可以擴大或縮小集區,調整叢集中的節點集區大小。縮減節點集區是自動化程序,可減少集區大小,而 GDC 系統會自動排空並逐出任意節點。縮減節點集區時,您無法選取要移除的特定節點。

事前準備

如要管理使用者叢集中的節點集區,您必須具備使用者叢集管理員角色 (user-cluster-admin 角色)。

新增節點集區

從 GDC 控制台建立使用者叢集時,您可以在叢集建立初始化前,自訂預設節點集區並建立其他節點集區。如要將節點集區新增至現有使用者叢集,請完成下列步驟:

控制台

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

API

  1. 使用互動式編輯器,透過 kubectl CLI 開啟 Cluster 自訂資源規格:

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    更改下列內容:

    • USER_CLUSTER_NAME:使用者叢集的名稱。
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集的 kubeconfig 檔案路徑。
  2. 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:要套用至這個節點集區節點的標籤。其中包含鍵/值組合清單。這是選填欄位。
  3. 儲存檔案並結束編輯器。

查看節點集區

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

控制台

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

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

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

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

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

主控台

  1. 在導覽選單中,選取「叢集」

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

  3. 選取「節點集區」

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

API

  1. 使用互動式編輯器,透過 kubectl CLI 開啟 Cluster 自訂資源規格:

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
          --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    更改下列內容:

    • USER_CLUSTER_NAME:使用者叢集的名稱。
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集的 kubeconfig 檔案路徑。
  2. nodePools 區段中移除節點集區項目。舉例來說,在下列程式碼片段中,您必須移除 machineTypeNamenamenodeCount 欄位:

    nodePools:
    ...
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

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

  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