ノードの自動サイズ変更

Google Distributed Cloud では、クラスタのノードの自動サイズ変更を有効にできます。サイズ変更とは、ノードに割り当てられる CPU リソースとメモリリソースを調整することを意味します。

管理クラスタでノードの自動サイズ変更が有効になっている場合、管理クラスタ内のアドオンノードが、管理クラスタ内のノードの総数に応じてサイズ変更されます。管理クラスタには、ユーザー クラスタごとに 1 つ以上のコントロール プレーン ノードがあります。そのため、ユーザー クラスタの数が増えると、管理クラスタ内のノード総数が増え、管理クラスタ内のアドオンノードのサイズが自動的に増加します。

ユーザー クラスタでノードの自動サイズ変更が有効になっている場合は、ユーザー クラスタのコントロール プレーン ノードが、ユーザー クラスタ内のノード数に従ってサイズ変更されます。そのため、ユーザー クラスタにワーカーノードを追加すると、コントロール プレーン ノードのサイズが増加します。ユーザー クラスタのコントロール プレーン ノードは、管理クラスタ内にあることを思い出してください。

高可用性(HA)ユーザー クラスタは、管理クラスタにコントロール プレーン ノードを 3 つあるユーザー クラスタで、非 HA ユーザー クラスタでは、管理クラスタに 1 つのコントロール プレーン ノードがあります。ノードをサイズ変更するには、ノードを再作成する必要があります。したがって、非 HA ユーザー クラスタのコントロール プレーン ノードをサイズ変更すると、わずかなダウンタイムが発生する可能性があります。

管理クラスタのアドオンノードのノードサイズ変更を有効にする

管理クラスタ構成ファイルで、addonNode.autoResize.enabledtrue に設定します。

addonNode:
  autoResize:
    enabled: true

新しい管理クラスタの場合は、管理クラスタの作成の手順に沿って操作します。

既存の管理クラスタの場合は、次のコマンドを実行します。

gkectl update admin --config ADMIN_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG

以下を置き換えます。

  • ADMIN_CLUSTER_CONFIG: 管理クラスタ構成ファイルのパス

  • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

ユーザー クラスタのコントロール プレーン ノードのノードサイズ変更を有効にする

ユーザー クラスタの構成ファイルで、masterNode.autoResize.enabledtrue に設定します。

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.enabledfalse に設定します。

addonNode:
  autoResize:
    enabled: false

クラスタを更新します。

gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

ユーザー クラスタのコントロール プレーン ノードのノードサイズ変更を無効にする

ユーザー クラスタの構成ファイルで、masterNode.autoResize.enabledfalse に設定します。

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