ベアメタル版 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-cluster
の np1
という名前のノードプールを削除します。
kubectl -n my-cluster delete nodepool np1
同様に、ノードプールの spec.nodes
アドレス配列を編集することでサイズを変更できます。
クラスタからノードを削除すると、まず、それらのノードの Pod がすべてドレインされます。Pod を他のノードで再スケジュールできない場合、ノードはクラスタから削除されません。ノードを削除すると、コントロール プレーンからノードが削除されるだけで、ノードのコンテンツはリセットされません。
次の kubectl edit
コマンドを使用すると、クラスタの名前空間 my-cluster とノードプール np1 を編集し、変更を commit できます。
kubectl -n my-cluster edit nodepool np1