クラスタ内のノードの追加と削除

ベアメタル版 Anthos クラスタでは、クラスタのノードプール定義を編集することで、クラスタ内のノードの追加や削除を行います。定義の変更には kubectl コマンドを使用します。

ベアメタル版 Anthos クラスタには、コントロール プレーン ノードプール、ロードバランサ ノードプール、ワーカー ノードプールの 3 種類のノードプールがあります。コントロール プレーンとロードバランサのノードは、関連付けられているクラスタ リソースの定義内で編集します。一方、ワーカー ノードプールの定義は直接編集します。

ノード ステータスの表示

ノードのステータスとそれに対応するノードプールは、kubectl get コマンドを使用して表示できます。

たとえば、次のコマンドは、クラスタの名前空間 my-cluster のノードプールのステータスを表示します。

 kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io

次のような結果が表示されます。

  NAME                    READY   RECONCILING   STALLED   UNDERMAINTENANCE   UNKNOWN
  my-cluster              3       0             0         0                  0
  my-cluster-lb           2       0             0         0                  0
  np1                     3       0             0         0                  0

クラスタの診断の詳細については、クラスタの診断とリセットをご覧ください。

コントロール プレーン ノードの変更

コントロール プレーン ノードを追加または削除するには、クラスタ リソース定義内のクラスタの spec.controlPlane.nodePoolSpec.nodes アドレス配列を編集します。

コントロール プレーン ノードプール内でクラスタの仕様は権威ある定義であるため、コントロール プレーン ノードプールを直接編集することはできません。

高可用性(HA)構成では、コントロール プレーンが失敗しても他のコントロール プレーンがそれを引き継げるクォーラムを確立するために、コントロール プレーン ノードプールが奇数個必要(3 つ以上)になります。ノードのメンテナンスや交換によるノードの追加や削除で、ノード数が一時的に偶数になる場合でも、クォーラムが十分に確保されている限りデプロイは HA を維持します。

ロードバランサ ノードの変更

クラスタのロードバランサ ノードプールを追加または削除するには、クラスタ構成ファイルでクラスタの spec.loadBalancer.nodePoolSpec.nodes アドレス配列を編集します。

ワーカーノードの変更

ワーカーノードは、kubectl コマンドを使用して直接追加や削除を行えます。ワーカー ノードプールには、目的のノードが 1 つ以上必要です。

次の例では、クラスタの名前空間の変数が my-clusternp1 という名前のノードプールを削除します。

  kubectl -n my-cluster delete nodepool np1
 

同様に、ノードプールの spec.nodes アドレス配列を編集することでサイズを変更できます。

クラスタからノードを削除すると、まず、それらのノードの Pod がすべてドレインされます。Pod を他のノードで再スケジュールできない場合、ノードはクラスタから削除されません。ノードを削除すると、コントロール プレーンからノードが削除されるだけで、ノードのコンテンツはリセットされません。

次の kubectl edit コマンドを使用すると、クラスタの名前空間 my-cluster とノードプール np1 を編集し、変更を commit できます。

  kubectl -n my-cluster edit nodepool np1