將路由器與邊緣節點隔離
為了確保路由器 Pod 總是排程到邊緣 Worker 節點,您必須建立或使用現有的 Worker 池,每個區域至少有兩個邊緣 Worker 節點。
開始之前
- 請確保您擁有以下 IAM 角色:
- 該叢集的任何平台存取角色
- 所有命名空間的「撰寫者」或「管理員」服務存取角色
- 訪問您的Red Hat OpenShift簇。
將工作負載隔離至邊緣工作節點
若要將工作負載隔離到邊緣工作節點:
-
使用標籤建立工作池
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 ``` - 要建立經典工作池,您可以使用
-
驗證工作者節點儲存區和工作者節點是否具有
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> ``` - 若要檢查工作池,請使用
-
擷取叢集中所有現有的 Ingress Controller。
oc get ingresscontroller -n openshift-ingress-operator輸出範例
NAME AGE default 5h37m -
編輯入口控制器。
oc edit ingresscontroller -n openshift-ingress-operator default -
設定
spec.nodePlacement字段如下。 欲了解更多信息,請參閱 Red Hat文件。nodePlacement: nodeSelector: matchLabels: dedicated: edge tolerations: - effect: NoSchedule operator: Exists -
儲存並關閉檔案。
-
請確認路由器 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 -
請確認沒有任何路由器 Pod 部署至非邊緣節點。
oc describe nodes -l dedicated!=edge | grep "router-*"若路由器 Pod 已正確部署至邊緣節點,則不會返回任何路由器 Pod。 您的路由器已成功重新排程至僅限邊緣工作節點上。
您已使用 dedicated=edge 標記工作節點池中的工作節點,並將所有現有的 ALB 重新部署至邊緣節點。 之後新增至叢集的所有 ALB,也會部署至您的邊緣工作程序池中的某個邊緣節點。 接下來,您可以防止其他 在邊緣工作節點上執行的工作負載。