このページでは、Google Kubernetes Engine(GKE)Standard クラスタ内にある既存のノードプールについて、GKE API を使って Kubernetes のノードラベルとノード taint を更新する方法を説明します。Kubernetes のノードラベルは、GKE のクラスタとノードラベルとは異なるものです。
ノードの taint とラベルは、Kubernetes ノードのオブジェクト メタデータ内にあります。Kubernetes のラベルは、特定のノードで Pod をスケジュールするために使用されます。一方、taint を使用すると、Pod を特定のノードから分離できます。詳細については、GKE でワークロードの分離を構成するをご覧ください。
GKE API を使用すると、ノードプールを再作成したり、実行中のワークロードを中断したりすることなく、既存の GKE ノードプールの Kubernetes ノードラベルとノード taint に対する更新を適用できます。更新されたノードプールの構成は GKE に保持されるため、将来そのノードプールをアップグレードするときや、新しいノードがプロビジョニングされるときは、その新しい構成が使用されます。
変更が GKE クラスタのオペレーションに与える影響については、クラスタのライフサイクルの変更を管理して中断を最小限に抑えるをご覧ください。特定の変更の詳細については、GKE クラスタの変更の種類セクションをご覧ください。
ノードラベルの更新
ノードプールのノードラベルを更新するには、次のコマンドを使用します。
gcloud container node-pools update NODEPOOL_NAME \
--node-labels=[NODE_LABEL,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
次のように置き換えます。
NODEPOOL_NAME: 更新するノードプールの名前。[NODE_LABEL,...]: 目的の新しいノードラベル(たとえば、label1=value1,label2=value2)。CLUSTER_NAME: クラスタの名前。CONTROL_PLANE_LOCATION: クラスタのコントロール プレーンの Compute Engine のロケーション。リージョン クラスタの場合はリージョン、ゾーンクラスタの場合はゾーンを指定します。
Node Taints の更新
ノードプールの Node Taints を更新するには、次のコマンドを使用します。
gcloud container node-pools update NODEPOOL_NAME \
--node-taints=[NODE_TAINT,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
次のように置き換えます。
NODEPOOL_NAME: 更新するノードプールの名前。[NODE_TAINT,...]: 目的の新しい Node Taints(たとえば、key1=val1:NoSchedule,key2=val2:PreferNoSchedule)。CLUSTER_NAME: クラスタの名前。CONTROL_PLANE_LOCATION: クラスタのコントロール プレーンの Compute Engine のロケーション。リージョン クラスタの場合はリージョン、ゾーンクラスタの場合はゾーンを指定します。