アプリのワークロードがエッジ・ワーカー・ノードで実行されないようにする
仮想プライベートクラウド クラシック・インフラストラクチャー
エッジ・ワーカー・ノードの利点の 1 つは、それらがネットワーク・サービスだけを実行するように指定できることです。
エッジワーカーノードでワークロードが実行され、ワーカーノードのリソースが消費されるのを防ぐには、Kubernetes汚点。
開始前に
- 以下のIAMロールが設定されていることを確認してください:
- クラスターに対するプラットフォーム・アクセスの役割
- すべてのネームスペースに対するマネージャー ・サービス・アクセス権限
- アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
ラベル付きのワーカープールを作成する
dedicated=edgeまたは、既存のワーカー プールの 1 つにラベルを追加します。- クラシックワーカープールを作成するには、
worker-pool create classic指示。
ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge ``` * VPCワーカープールを作成するには、`worker-pool create vpc-gen2`[指示](/docs/containers?topic=containers-kubernetes-service-cli#worker-pool-create-vpc-gen2-cli)。 ```sh {: pre} ibmcloud oc worker-pool create vpc-gen2 --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge ``` * 既存のワーカープールにラベルを付けるには、`worker-pool label set`[指示](/docs/containers?topic=containers-kubernetes-service-cli#worker-pool-label-set-cli)。 ```sh {: pre} ibmcloud oc worker-pool label set --cluster CLUSTER --worker-pool POOL --label dedicated=edge ``` - クラシックワーカープールを作成するには、
-
上記のワーカー・プールとワーカー・ノードに
dedicated=edgeというラベルが付けられていることを確認します。- ワーカープールを確認するには、
getコマンドを使用する。
ibmcloud ks worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID ``` * 個々のワーカー・ノードを確認するには、以下のコマンドの出力の **Labels** フィールドを確認します。 ```sh {: pre} kubectl describe node <worker_node_private_IP> ``` - ワーカープールを確認するには、
-
dedicated=edgeラベルの付いたワーカー・ノードにテイントを適用します。 このテイントにより、ポッドがワーカー・ノードで実行されなくなり、dedicated=edgeラベルが付いていないポッドがワーカー・ノードから削除されます。 削除されたポッドは、容量のある他のワーカー・ノードに再デプロイされます。ワーカー・プール内の既存のワーカー・ノードと将来のワーカー・ノードのすべてにテイントを適用するには、以下のようにします。
ibmcloud ks worker-pool taint set -c CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID --taint dedicated=edge:NoExecute個々のワーカー・ノードにテイントを適用するには、以下のようにします。
kubectl taint node -l dedicated=edge dedicated=edge:NoExecuteこれで、
dedicated=edge耐障害性のあるポッドだけがエッジ・ワーカー・ノードにデプロイされます。 -
エッジ・ノードにテイントが適用されていることを確認します。
kubectl describe nodes -l dedicated=edge | egrep "Taints|Hostname"出力例:
Taints: dedicated=edge:NoExecute Hostname: 10.176.48.83 Taints: dedicated=edge:NoExecute Hostname: 10.184.58.7