將路由器與邊緣節點隔離

為了確保路由器 Pod 總是排程到邊緣 Worker 節點,您必須建立或使用現有的 Worker 池,每個區域至少有兩個邊緣 Worker 節點。

開始之前

  • 請確保您擁有以下 IAM 角色:
    • 該叢集的任何平台存取角色
    • 所有命名空間的「撰寫者」或「管理員」服務存取角色
  • 訪問您的Red Hat OpenShift簇

將工作負載隔離至邊緣工作節點

若要將工作負載隔離到邊緣工作節點:

  1. 使用標籤建立工作池 dedicated=edge 或將標籤新增至您現有的工作池之一。

    • 要建立經典工作池,您可以使用 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 Controller。

    oc get ingresscontroller -n openshift-ingress-operator
    

    輸出範例

    NAME      AGE
    default   5h37m
    
  4. 編輯入口控制器。

    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. 請確認路由器 Pod 已排程至邊緣節點,且未排程至運算節點。

    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. 請確認沒有任何路由器 Pod 部署至非邊緣節點。

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

    若路由器 Pod 已正確部署至邊緣節點,則不會返回任何路由器 Pod。 您的路由器已成功重新排程至僅限邊緣工作節點上。

您已使用 dedicated=edge 標記工作節點池中的工作節點,並將所有現有的 ALB 重新部署至邊緣節點。 之後新增至叢集的所有 ALB,也會部署至您的邊緣工作程序池中的某個邊緣節點。 接下來,您可以防止其他 在邊緣工作節點上執行的工作負載