Evitando que cargas de trabalho do app sejam executadas em nós do trabalhador de borda

Nuvem privada virtual Infraestrutura clássica

Um benefício de nós do trabalhador de borda é que eles podem ser especificados para executar somente serviços de rede.

É possível evitar que cargas de trabalho sejam executadas em nós do trabalhador de borda e consumam recursos do nó do trabalhador usando Kubernetes contaminações.

Antes de Iniciar

  1. Crie um pool de trabalhadores com o rótulo dedicated=edge ou adicione o rótulo a um dos seus pools de trabalhadores existentes.

    • Para criar um pool de trabalhadores clássico, você pode usar o worker-pool create classic comando.
        ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * Para criar um pool de trabalhadores da VPC, você pode usar o `worker-pool create vpc-gen2` [comando](/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
        ```
    * Para rotular um pool de trabalhadores existente, você pode usar o `worker-pool label set` [comando](/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. Verifique se o conjunto de trabalhadores e os nós do trabalhador têm o rótulo dedicated=edge.

    • Para verificar o pool de trabalho, use o comando get.
        ibmcloud ks worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID
        ```
    * Para verificar os nós do trabalhador individuais, revise o campo **Rótulos** da saída do comando a seguir.
    ```sh {: pre}
        kubectl describe node <worker_node_private_IP>
        ```
    
    
  3. Aplique uma contaminação nos nós do trabalhador com o rótulo dedicated=edge. A contaminação evita que os pods sejam executados no nó do trabalhador e remove pods que não têm o rótulo dedicated=edge do nó do trabalhador. Os pods removidos são reimplementados em outros nós do trabalhador com capacidade.

    Para aplicar uma contaminação a todos os nós de trabalhadores existentes e futuros em um conjunto de trabalhadores:

    ibmcloud ks worker-pool taint set -c CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID --taint dedicated=edge:NoExecute
    

    Para aplicar uma contaminação em nós do trabalhador individuais:

    kubectl taint node -l dedicated=edge dedicated=edge:NoExecute
    

    Agora, somente pods com a tolerância dedicated=edge são implementados em nós do trabalhador de borda.

  4. Verifique se os nós de borda estão contaminados.

    kubectl describe nodes -l dedicated=edge | egrep "Taints|Hostname"
    

    Saída de exemplo:

    Taints:             dedicated=edge:NoExecute
        Hostname:    10.176.48.83
      Taints:             dedicated=edge:NoExecute
    Hostname:    10.184.58.7