防止應用程式工作負載在邊緣工作節點上執行

虛擬私有雲 經典基礎架構

邊緣工作者節點的一項好處是它們可以指定為僅執行網路服務。

您可以防止工作負載在邊緣工作節點上運行並消耗工作節點資源,方法是使用 Kubernetes污點

開始之前

  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/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
        ```
    
  2. 驗證工作者節點儲存區和工作者節點是否具有 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>
        ```
    
    
  3. 使用以下命令將污點應用到工作節點 dedicated=edge 標籤。 污點會阻止 Pod 在工作節點上運行,並刪除不具有該污點的 Pod dedicated=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 才會部署至您的邊緣工作者節點。

  4. 驗證已為邊緣節點加上污點。

    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