防止應用程式工作負載在邊緣工作節點上執行
虛擬私有雲 經典基礎架構
邊緣工作者節點的一項好處是它們可以指定為僅執行網路服務。
您可以防止工作負載在邊緣工作節點上運行並消耗工作節點資源,方法是使用 Kubernetes污點。
開始之前
- 請確保您擁有以下 IAM 角色:
- 叢集的任何平台存取角色
- 主管所有命名空間的服務存取角色
- 請登入您的帳戶。 適用的話,請將適當的資源群組設為目標。 設定叢集的環境定義。
-
使用標籤建立工作池
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/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標籤。- 若要檢查 Worker 池,請使用
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> ``` - 若要檢查 Worker 池,請使用
-
使用以下命令將污點應用到工作節點
dedicated=edge標籤。 污點會阻止 Pod 在工作節點上運行,並刪除不具有該污點的 Poddedicated=edge來自工作節點的標籤。 移除的 Pod 會重新部署到具有容量的其他工作者節點。要將污點應用到工作池中所有現有和未來的工作節點:
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容忍的 Pod 才會部署至您的邊緣工作者節點。 -
驗證已為邊緣節點加上污點。
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