クラシック NLB をエッジ ワーカー ノードに分離する
クラシック
以下の手順では、クラスタ内の各パブリックVLANまたはプライベートVLAN上のワーカーノードに、「 dedicated=edge 」ラベルを追加します。 このラベルは、ネットワーク ロード バランサー (NLB) をこれらのワーカー ノードにのみデプロイするために使用されます。 パブリックおよびプライベートのNLBは、いずれもエッジワーカーノードに展開できます。
既存のワーカープールを使用する場合は、そのプールがクラスター内のすべてのゾーンにまたがっており、ゾーンごとに少なくとも2つのワーカーノードが存在する必要があります。 ibmcloud oc worker-pool label set コマンド を使用すると、ワーカープールに
dedicated=edge というラベルを付けることができます。
開始前に
- 以下の IBM Cloud IAM 役割があることを確認します。
- クラスターに対するプラットフォーム・アクセスの役割
- すべての名前空間に対するライターまたはマネージャーのサービス・アクセス役割
- Red Hat OpenShift クラスターにアクセスします。
-
ラベル付きのワーカープールを作成する
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 ``` * 既存のワーカープールにラベルを付けるには、`worker-pool label set`[指示](/docs/openshift?topic=openshift-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 oc worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID ``` * 個々のワーカー・ノードを確認するには、以下のコマンドの出力の **Labels** フィールドを確認します。 ```sh {: pre} oc describe node <worker_node_private_IP> ``` - ワーカープールを確認するには、
-
クラスター内の既存の NLB をすべて取得します。 出力結果では、各ロードバランサーのネームスペースと 名前に注意してください。
oc get services --all-namespaces | grep LoadBalancer出力例:
PORT(S) AGE router-default 80:31228/TCP,443:31655/TCP 4h54m LoadBalancer 172.21.71.79 169.46.17.2 -
前のステップの出力を使用して、NLB ごとに以下のコマンドを実行します。 このコマンドは、NLB をエッジ・ワーカー・ノードに再デプロイします。
oc get service -n <namespace> <name> -o yaml | oc apply -f -出力例:
service "router-default" configured -
ネットワーク関連のワークロードがエッジノードに限定されていることを確認するには、ロードバランサーがエッジノードにスケジューリングされており、エッジノード以外のノードにはスケジューリングされていないことを確認してください。
- NLB ポッド
- NLB ポッドがエッジ・ノードにデプロイされていることを確認します。 前の手順の出力に表示されているロードバランサーサービスの外部IPアドレスを検索してください。 ピリオド(
.) をハイフンで区切る (-)。次の例では、crc81nk5l10gfhdql4i3qgNLBの外部IPアドレスは169.46.17.2。出力例:oc describe nodes -l dedicated=edge | grep "169-46-17-2"ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) - どの NLB ポッドも非エッジ・ノードにデプロイされていないことを確認します。 外部 IP アドレスが
169.46.17.2である「public-crc81nk5l10gfhdql4i3qg-nlb1」NLB の例:oc describe nodes -l dedicated!=edge | grep "169-46-17-2"- NLB ポッドがエッジ・ノードに正しくデプロイされている場合は、NLB ポッドは返されません。 NLB は、エッジ・ワーカー・ノードのみに正常にスケジュール変更されています。
- NLB ポッドが返された場合は、次のステップに進みます。
- NLB ポッドがエッジ・ノードにデプロイされていることを確認します。 前の手順の出力に表示されているロードバランサーサービスの外部IPアドレスを検索してください。 ピリオド(
- NLB ポッド
-
NLB ポッドがまだ非エッジ・ノードにデプロイされている場合は、ポッドを削除して、エッジ・ノードに再デプロイすることができます。
一度に削除できるポッドは1つだけです。他のポッドを削除する前に、そのポッドがエッジノードに再スケジューリングされていることを確認してください。
- ポッドを削除します。 たとえば、
public-crc81nk5l10gfhdql4i3qg-alb1のNLBポッドの1つがエッジノードにスケジューリングされなかった場合:
oc delete pod ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg -n ibm-system ``` 2. このポッドがエッジ・ワーカー・ノードにスケジュール変更されていることを確認します。 スケジュール変更は自動的に行われますが、数分かかることがあります。 外部 IP アドレスが `169.46.17.2` である「 `public-crc81nk5l10gfhdql4i3qg-alb1` 」NLB の例: ```sh {: pre} oc describe nodes -l dedicated=edge | grep "169-46-17-2" ``` 出力例: ```sh {: screen} ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ibm-system ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r 5m (0%) 0 (0%) 10Mi (0%) 0 (0%) ``` - ポッドを削除します。 たとえば、
ワーカープール内のワーカーノードに「 dedicated=edge 」というラベルを付け、既存のすべてのNLBをエッジノードに再デプロイしました。 その後、クラスターに追加されるすべてのNLBも、エッジワーカープール内のエッジノードにデプロイされます。 次に、他のワークロードがエッジ・ワーカー・ノード上で実行されないようにして、
ワーカー・ノード上の NodePort へのインバウンド・トラフィックをブロックします。