Google Distributed Cloud では、クラスタのノードの自動サイズ変更を有効にできます。サイズ変更とは、ノードに割り当てられる CPU リソースとメモリリソースを調整することを意味します。
管理クラスタでノードの自動サイズ変更が有効になっている場合、管理クラスタ内のアドオンノードが、管理クラスタ内のノードの総数に応じてサイズ変更されます。管理クラスタには、ユーザー クラスタごとに 1 つ以上のコントロール プレーン ノードがあります。そのため、ユーザー クラスタの数が増えると、管理クラスタ内のノード総数が増え、管理クラスタ内のアドオンノードのサイズが自動的に増加します。
ユーザー クラスタでノードの自動サイズ変更が有効になっている場合は、ユーザー クラスタのコントロール プレーン ノードが、ユーザー クラスタ内のノード数に従ってサイズ変更されます。そのため、ユーザー クラスタにワーカーノードを追加すると、コントロール プレーン ノードのサイズが増加します。ユーザー クラスタのコントロール プレーン ノードは、管理クラスタ内にあることに注意してください。
高可用性(HA)ユーザー クラスタは、管理クラスタにコントロール プレーン ノードが 3 つあるユーザー クラスタで、非 HA ユーザー クラスタでは、管理クラスタに 1 つのコントロール プレーン ノードがあります。ノードをサイズ変更するには、ノードを再作成する必要があります。したがって、非 HA ユーザー クラスタのコントロール プレーン ノードをサイズ変更すると、わずかなダウンタイムが発生する可能性があります。
管理クラスタのアドオンノードのサイズ変更を有効にする
管理クラスタ構成ファイルで、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