自動調整節點大小

在 Google Distributed Cloud 中,您可以為叢集啟用節點自動調整大小功能。調整大小是指調整指派給節點的 CPU 和記憶體資源。

如果管理員叢集已啟用節點大小自動調整功能,管理員叢集中的附加元件節點就會根據管理員叢集中的節點總數調整大小。每個使用者叢集在管理員叢集中都有一個或多個控制層節點。因此,隨著您建立更多使用者叢集,管理員叢集中的節點總數會增加,管理員叢集中的附加元件節點大小也會自動增加。

如果使用者叢集已啟用節點大小自動調整功能,系統會根據使用者叢集內的節點數量,調整使用者叢集的控制層節點大小。因此,當您在使用者叢集中新增更多工作站節點時,控制層節點的大小也會增加。請注意,使用者叢集的控制層節點位於管理員叢集。

高可用性 (HA) 使用者叢集:使用者叢集在管理員叢集中有三個控制層節點,而非 HA 使用者叢集在管理員叢集中有一個控制層節點。如要調整節點大小,必須重新建立節點。因此,調整非高可用性使用者叢集的控制層節點大小時,可能會出現短暫的停機時間。

進階叢集不支援自動調整節點大小。

為管理員叢集的外掛程式節點啟用節點大小調整功能

只有在管理員叢集有附加節點時,才需依照本節步驟進行。管理員叢集是否含有外掛程式節點,取決於特定設定和版本,如下所示:

  • 非 HA 管理員叢集:非 HA 管理員叢集有一個控制層節點和兩個外掛程式節點。
  • HA 管理員叢集
    • 1.16 版和更早版本:高可用性管理員叢集有三個控制層節點和兩個外掛程式節點。
    • 1.28 以上版本:高可用性管理員叢集沒有外掛程式節點。這三個節點都是控制層節點。

如要判斷叢集是否含有外掛程式節點,請執行下列指令:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG'

ADMIN_CLUSTER_KUBECONFIG 替換為管理員叢集 kubeconfig 檔案的路徑。

如果叢集有外掛程式節點,請為外掛程式節點啟用節點大小調整功能,方法如下:

管理員叢集設定檔中,將 addonNode.autoResize.enabled 設為 true

addonNode:
  autoResize:
    enabled: true

如果是新的管理員叢集,請按照「建立管理員叢集」一文中的操作說明完成設定。

如果是現有管理員叢集:

gkectl update admin --config ADMIN_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG

更改下列內容:

  • ADMIN_CLUSTER_CONFIG:管理員叢集設定檔的路徑

  • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑

為使用者叢集的控制層節點啟用節點大小調整功能

使用者叢集設定檔中,將 masterNode.autoResize.enabled 設為 true

masterNode:
  autoResize:
    enabled: true

如要建立新的使用者叢集,請按照「建立使用者叢集」一文中的操作說明完成設定。

如果是現有叢集:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

更改下列內容:

  • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑

  • USER_CLUSTER_CONFIG:使用者叢集設定檔的路徑

為使用者叢集啟用節點大小自動調整功能後,系統會拒絕任何透過執行 gkectl update 變更控制層節點 CPU 或記憶體的嘗試。如要使用 gkectl update 變更使用者叢集控制層節點的 CPU 或記憶體,必須停用節點自動調整大小功能。

停用管理員叢集外掛程式節點的大小調整功能

管理員叢集設定檔中,將 addonNode.autoResize.enabled 設為 false

addonNode:
  autoResize:
    enabled: false

更新叢集:

gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

停用使用者叢集控制層節點的節點大小調整功能

使用者叢集設定檔中,將 masterNode.autoResize.enabled 設為 false

masterNode:
  autoResize:
    enabled: false

更新叢集:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

停用使用者叢集的節點自動調整大小功能後,系統會將控制層節點的 CPU 和記憶體,調整為使用者叢集設定檔中指定的 CPU 和記憶體值。

記錄檔和事件

如要找出自動調整大小的 Pod 名稱,請按照下列步驟操作:

kubectl --kubeconfig ADMIN_KUBECONFIG describe deployment auto-resize-controller

Pod 的名稱格式為 auto-resize-controller-xxxxx

如要查看自動調整大小的 Pod 記錄,請執行下列指令:

kubectl --kubeconfig ADMIN_KUBECONFIG logs AUTO_RESIZE_POD_NAME

自動調整大小控制器會在 MachineDeployment 物件上產生事件,以便瞭解與調整大小相關的決策和動作。

如要找出 MachineDeployment 的名稱,請執行下列操作:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machinedeployments --all-namespaces

如要查看活動,請按照下列步驟操作:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machinedeployment USER_CONTROL_PLANE_NODE_MACHINE_DEPLOYMENT
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machinedeployment ADMIN_ADDON_NODE_MACHINE_DEPLOYMENT