ベアメタル版 Anthos クラスタでは、ノードプールのカスタム リソースを作成または削除することで、クラスタのノードプールを追加または削除します。ノードプールの変更には、kubectl
を使用します。
既存のクラスタに対しては、ワーカーノード プールの追加または削除のみ行なえます。クラスタの作成時に追加されたコントロール プレーンとロードバランサのノードプールは、クラスタの機能にとって欠かせないもので、削除できません。
ノードのステータスを確認する
ノードプールを追加または削除する前に、kubectl get
を使用してノードと各ノードプールのステータスを確認します。コマンドとレスポンスの例などの詳細については、ノード ステータスの表示をご覧ください。
新しいノードプールを追加する
管理者クラスタに新しい nodepools.baremetal.cluster.gke.io
リソースを作成すると、新しいノードプールを追加できます。たとえば、次の構成を指定して、ノード IP アドレスの 10.200.0.7
と 10.200.0.8
を含む「nodepool-new」という名前の新しいノードプールを追加します。
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: node-pool-new
namespace: cluster-my-cluster
spec:
clusterName: my-cluster
nodes:
- address: 10.200.0.7
- address: 10.200.0.8
taints:
- key: <key1>
value: <value1>
effect: NoSchedule
labels:
key1: <value1>
key2: <value2>
ベアメタル版 Anthos クラスタ 1.7.0 以降のバージョンでは、NodePool.spec.taints
と NodePool.spec.labels
の構成はノードに合わせて調整されます。1.7.0 では、直接追加された taint とラベルはすべて削除されます。ベアメタル版 Anthos クラスタ 1.7.1 以降のバージョンでは、同期プロセス中に直接追加した taint とラベルがコントロール プレーンによって削除されなくなりました。
この調整ステップを省略するには、ノードに baremetal.cluster.gke.io/label-taint-no-sync
アノテーションを付加します。
ノードプール リソースは、関連するクラスタと同じ名前空間に作成し、spec.clusterName
フィールド内のクラスタ名を参照する必要があります。
構成を node-pool-new.yaml
という名前のファイルに保存します。次のコマンドを使用して、管理クラスタに構成を適用します。必要に応じて、--kubeconfig
フラグを使用して管理クラスタ構成を明示的に指定します。
kubectl apply -f node-pool-new.yaml
ノードプールを削除する
ノードプールの削除には、kubectl delete
を使用します。たとえば、前のセクションで追加したノードプール(node-pool-new
)を削除するには、次のコマンドを使用します。
kubectl -n cluster-my-cluster delete nodepool node-pool-new
クラスタ内のワーカーノードを削除すると、Pod が中断されることがあります。PodDisruptionBudget(PDB)がある場合は、ノードプールの削除がブロックされる可能性があります。Pod 停止ポリシーの詳細については、Pod 停止予算によってブロックされたノードの削除をご覧ください。