既存のノードプールのノードラベルと taint を更新する


このページでは、Google Kubernetes Engine(GKE)Standard クラスタで、既存のノードプールのノードラベルと Node Taints を動的に更新する方法について説明します。

GKE Autopilot クラスタまたは GKE Standard クラスタでネットワーク タグを動的に適用および更新することもできます。手順については、ネットワーク タグを使用してノードにファイアウォール ルールを適用するをご覧ください。

概要

ノードの Taintsラベルは、Kubernetes ノードのオブジェクト メタデータにあります。ラベルは特定のノード上の Pod をスケジュールするために使用されます。Taints を使用すると、Pod をノードから分離できます。

Kubernetes Engine API を使用すると、ノードプールの再作成も、実行中のワークロードの中断も行わずに、既存の GKE ノードプールのノードラベル、Node Taints に対する更新を適用できます。更新されたノードプールの構成は GKE に保持されるため、将来のノードプールのアップグレードとノードプールでの新しいノードのプロビジョニングで新しい構成が使用されるようになります。

制限事項

Kubernetes Engine API を使用したノードプール構成の動的な更新には、いくつかの制限事項があります。

ノードラベルの更新

ノードプールのノードラベルを更新するには、次のコマンドを使用します。

gcloud container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG ]

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

  • NODEPOOL_NAME: 更新するノードプールの名前。
  • [NODE_LABEL,...]: 目的の新しいノードラベル(たとえば、label1=value1,label2=value2)。
  • CLUSTER_NAME: クラスタの名前。
  • REGION: クラスタの Compute Engine のリージョン
  • ZONE: クラスタの Compute Engine ゾーン

Node Taints の更新

ノードプールの Node Taints を更新するには、次のコマンドを使用します。

gcloud container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG ]

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

  • NODEPOOL_NAME: 更新するノードプールの名前。
  • [NODE_TAINT,...]: 目的の新しい Node Taints(たとえば、key1=val1:NoSchedule,key2=val2:PreferNoSchedule)。
  • CLUSTER_NAME: クラスタの名前。
  • REGION: クラスタの Compute Engine のリージョン
  • ZONE: クラスタの Compute Engine ゾーン

次のステップ