ユーザー クラスタのサイズ変更

ユーザー クラスタのサイズ変更とは、ノードを追加または削除することです。ノードを追加するには、新しいノードで IP アドレスを使用できるようにする必要があります。ノードプール内のレプリカの数を変更することで、ユーザー クラスタのサイズを変更します。

ユーザー クラスタの上限と下限については、スケーラビリティの上限をご覧ください。

ノードプールの管理の詳細については、ノードプールの作成と管理をご覧ください。

十分な IP アドレスが使用可能であることを確認する

サイズ変更後に N 個のノードが必要な場合は、N + 1 個の IP アドレスが使用可能である必要があります。

クラスタのサイズを変更する前に、IP アドレスが十分にあることを確認します。確認方法は、クラスタが DHCP サーバーと静的 IP アドレスのどちらを使用しているかによって異なります。

DHCP

クラスタが DHCP を使用している場合、DHCP サーバーに十分な IP アドレスがあることを確認します。サイズ変更後にクラスタに存在するノードの数よりも 1 つ以上多くの IP アドレスを指定する必要があります。

静的 IP

十分な静的 IP アドレスがあることを確認する方法は、クラスタが GKE On-Prem API に登録されているかどうかによります。次のいずれかに該当する場合は、ユーザー クラスタが GKE On-Prem API に登録されています。

  • クラスタが、Google Cloud コンソール、Google Cloud CLI(gcloud CLI)、または Terraform を使用して作成されている場合、これらによりクラスタが GKE On-Prem API に自動的に登録されます。これらの標準アプリケーションを総称して GKE On-Prem API クライアントと呼びます。

  • ユーザー クラスタでコマンド gkectl enroll cluster が実行済みである。この場合、GKE On-Prem API で管理されるように構成されています。

GKE On-Prem API がユーザー クラスタを管理している場合は、コンソールを使用して IP 数をカウントし、必要に応じて IP を追加します。ユーザー クラスタが GKE On-Prem API によって管理されていない場合は、最初に gkectl update cluster を実行できます。これは、クラスタに十分な IP アドレスが割り振られているかどうかを確認します。そうしない場合は、必要な追加 IP アドレスの数は、エラー メッセージで確認できます。

静的 IP を追加する

クラスタが GKE On-Prem API によって管理されている場合は、コンソールを使用してさらに IP アドレスを追加します。その API によって管理されていない場合は、管理ワークステーションでコマンドラインを使用します。

コンソール

  1. コンソールで、Google Kubernetes Engine クラスタの概要ページに移動します。

    GKE クラスタに移動

  2. ユーザー クラスタが存在する Google Cloud プロジェクトを選択します。

  3. クラスタリストでクラスタの名前をクリックし、[詳細] パネルの [詳細を表示] をクリックします。

  4. [ネットワーキング] セクションで 編集をクリックします。

  5. [静的 IP を追加する] ダイアログ ボックスで、[IP を追加する] をクリックします。IP アドレスと、必要に応じてホスト名を入力します。以上の手順を必要なだけ繰り返してください。終了したら、[完了] をクリックます。

コマンドライン

  1. ユーザー クラスタの IP ブロック ファイルを開いて編集します。

  2. ユーザー クラスタに使用するすべての IP アドレスが IP ブロック ファイルに含まれていることを確認します。IP ブロック ファイルには、サイズ変更後にクラスタに存在するノードの数よりも 1 つ以上多い IP アドレスが必要です。

  3. ユーザー クラスタ用に予約されたアドレスを表示するには:

    kubectl get cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --namespace USER_CLUSTER_NAME USER_CLUSTER_NAME --output yaml

    次のように置き換えます。

    • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス
    • USER_CLUSTER_NAME: ユーザー クラスタの名前。
  4. 対応するブロックに静的 IP アドレスを必要な数だけ追加し、gkectl update cluster を実行します。

4 つの IP アドレスと対応するホスト名を持つ IP ブロック ファイルの例を次に示します。

hostconfig:
dns: 172.16.255.1
tod: 216.239.35.0
blocks:
- netmask: 255.255.248.0
  gateway: 21.0.135.254
  ips:
  - ip: 21.0.133.41
    hostname: user-node-1
  - ip: 21.0.133.50
    hostname: user-node-2
  - ip: 21.0.133.56
    hostname: user-node-3
  - ip: 21.0.133.47
    hostname: user-node-4

クラスタのサイズを変更する

コンソール

  1. コンソールで、Google Kubernetes Engine クラスタの概要ページに移動します。

    GKE クラスタに移動

  2. ユーザー クラスタが存在する Google Cloud プロジェクトを選択します。

  3. クラスタリストでクラスタの名前をクリックし、[詳細] パネルの [詳細を表示] をクリックします。

  4. [ノード] タブをクリックします。

  5. サイズ変更するノードプールの名前をクリックします。

  6. [サイズ変更] をクリックします。

  7. [ノード] フィールドに、ノードプールに入れるノードの数を入力し、[完了] をクリックします。

  8. をクリックして前のページに戻ります。

  9. コンソールに [クラスタのステータス: 変更処理中] と表示されます。[詳細を表示] をクリックすると、[リソース ステータス条件] と [ステータス メッセージ] が表示されます。

コマンドライン

ユーザー クラスタの構成ファイルで、1 つ以上の nodePools 要素の replicas フィールドの値を更新します。

クラスタのサイズを変更する:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

次のように置き換えます。

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

  • USER_CLUSTER_CONFIG: ユーザー クラスタの構成ファイルのパス

サイズ変更が成功したことを確認します。

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG describe machinedeployments NODE_POOL_NAME | grep Replicas

次のように置き換えます。

  • USER_CLUSTER_KUBECONFIG: ユーザー クラスタの kubeconfig ファイルのパス

  • NODE_POOL_NAME: サイズを変更したノードプールの名前。

トラブルシューティング

クラスタの作成とアップグレードに対するトラブルシューティングをご覧ください。