ルータをエッジノードに分離する

ルーターポッドが常にエッジワーカーノードにスケジューリングされるようにするには、ゾーンごとに少なくとも2つのエッジワーカーノードを持つワーカープールを作成するか、既存のワーカープールを使用する必要があります。

開始前に

  • 以下の IAM ロールが割り当てられていることを確認してください:
    • クラスターに対するプラットフォーム・アクセスの役割
    • すべての名前空間に対するライターまたはマネージャーのサービス・アクセス役割
  • Red Hat OpenShift クラスターにアクセスします

エッジワーカーノードへのワークロードの分離

ワークロードをエッジ ワーカー ノードに分離するには:

  1. ラベル付きのワーカープールを作成する 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/openshift?topic=openshift-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/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
        ```
    
  2. 上記のワーカー・プールとワーカー・ノードに 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>
        ```
    
    
    
    
  3. クラスタ内の既存のIngressコントローラーをすべて取得します。

    oc get ingresscontroller -n openshift-ingress-operator
    

    出力例

    NAME      AGE
    default   5h37m
    
  4. Ingress コントローラーを編集します。

    oc edit ingresscontroller -n openshift-ingress-operator default
    
  5. をセットする spec.nodePlacement フィールドを次のとおりにします。 詳細については、Red Hatドキュメンテーション

    nodePlacement:
      nodeSelector:
        matchLabels:
          dedicated: edge
        tolerations:
        - effect: NoSchedule
          operator: Exists
    
  6. ファイルを保存して閉じます。

  7. ルーター・ポッドがエッジ・ノードにスケジューリングされており、コンピュート・ノードにはスケジューリングされていないことを確認してください。

    oc describe nodes -l dedicated=edge | grep "router-*"
    

    出力例

    openshift-ingress                       router-default-7784f69c7c-qq577           100m (2%)     0 (0%)      256Mi (1%)       0 (0%)         5m4s
    openshift-ingress                       router-default-7784f69c7c-7rwrj           100m (2%)     0 (0%)      256Mi (1%)       0 (0%)         5m5s
    
  8. エッジノード以外のノードにルーターポッドがデプロイされていないことを確認してください。

    oc describe nodes -l dedicated!=edge | grep "router-*"
    

    ルーターポッドがエッジノードに正しくデプロイされている場合、ルーターポッドは返されません。 ルーターは、エッジワーカーノードのみに再割り当てされました。

ワーカープール内のワーカーノードに「 dedicated=edge 」というラベルを付け、既存のすべてのALBをエッジノードに再デプロイしました。 その後、クラスターに追加されるすべてのALBは、エッジワーカープール内のエッジノードにもデプロイされます。 次に、他の エッジワーカーノードで実行されるワークロード