Isolando NLBs clássicos para nós de trabalho de borda

Clássico

Nas etapas a seguir, você adicionará a etiqueta “ dedicated=edge ” aos nós de trabalho em cada VLAN pública ou privada do seu cluster. Esse rótulo é usado para implementar seus balanceadores de carga de rede (NLBs) somente nesses nós do trabalhador. Tanto os NLBs públicos quanto os privados podem ser implantados em nós de trabalho de borda.

Se você planeja usar um conjunto de nós de trabalho já existente, esse conjunto deve abranger todas as zonas do seu cluster e ter pelo menos dois nós de trabalho por zona. É possível rotular o conjunto do trabalhadores com dedicated=edge usando o comando ibmcloud oc worker-pool label set.

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, 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 rotular um pool de trabalhadores existente, você pode usar o `worker-pool label set` [comando](/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. Verifique se o conjunto de trabalhadores e os nós do trabalhador têm o rótulo dedicated=edge.

    • Para verificar o pool de trabalhadores, execute o get comando.
        ibmcloud oc 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}
        oc describe node <worker_node_private_IP>
        ```
    
    
    
    
  3. Recuperar todos os NLBs existentes no cluster. Na saída, observe o namespace e o nome de cada balanceador de carga.

    oc get services --all-namespaces | grep LoadBalancer
    

    Saída de exemplo:

    PORT(S)                      AGE
    router-default
    80:31228/TCP,443:31655/TCP   4h54m
    LoadBalancer   172.21.71.79    169.46.17.2
    
  4. Usando a saída da etapa anterior, execute o comando a seguir para cada NLB. Esse comando reimplementa o NLB a um nó do trabalhador de borda.

    oc get service -n <namespace> <name> -o yaml | oc apply -f -
    

    Saída de exemplo:

    service "router-default" configured
    
  5. Para verificar se as cargas de trabalho de rede estão restritas aos nós de borda, confirme se os balanceadores de carga estão alocados nos nós de borda e não em nós que não sejam de borda.

    • Pods de NLB
      1. Confirme se os pods do NLB são implementados em nós de borda. Procure o endereço IP externo do serviço de balanceador de carga que aparece na saída da etapa anterior. Substitua os pontos (. ) com hífens (- ). No exemplo a seguir para o crc81nk5l10gfhdql4i3qg, o NLB tem um endereço IP externo de 169.46.17.2.
        oc describe nodes -l dedicated=edge | grep "169-46-17-2"
        
        Saída de exemplo:
        ibm-system                 ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg                 5m (0%)       0 (0%)      10Mi (0%)        0 (0%)
        ibm-system                 ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r                 5m (0%)       0 (0%)      10Mi (0%)        0 (0%)
        
      2. Confirm that no NLB pods are deployed to non-edge nodes. Exemplo para o NLB do public-crc81nk5l10gfhdql4i3qg-nlb1, que possui um endereço IP externo 169.46.17.2:
        oc describe nodes -l dedicated!=edge | grep "169-46-17-2"
        
        • If the NLB pods are correctly deployed to edge nodes, no NLB pods are returned. Your NLBs are successfully rescheduled onto only edge worker nodes.
        • If NLB pods are returned, continue to the next step.
  6. Se os pods do NLB ainda estiverem implementados em nós não de borda, será possível excluir os pods para que eles sejam reimplementados em nós de borda.

    Exclua apenas um pod por vez e verifique se o pod foi reprogramado para um nó de borda antes de excluir outros pods.

    1. Exclua o pod. Por exemplo, se um dos pods do NLB do public-crc81nk5l10gfhdql4i3qg-alb1 não tiver sido agendado para um nó de borda:
        oc delete pod ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg -n ibm-system
        ```
    2. Verifique se o pod é reagendado para um nó do trabalhador de borda. O reagendamento é automático, mas pode levar alguns minutos. Exemplo para o NLB do `public-crc81nk5l10gfhdql4i3qg-alb1`, que possui um endereço IP externo `169.46.17.2`:
    ```sh {: pre}
        oc describe nodes -l dedicated=edge | grep "169-46-17-2"
        ```
        Saída de exemplo:
    
        ```sh {: screen}
        ibm-system                 ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-wz6dg                 5m (0%)       0 (0%)      10Mi (0%)        0 (0%)
        ibm-system                 ibm-cloud-provider-ip-169-46-17-2-76fcb4965d-2z64r                 5m (0%)       0 (0%)      10Mi (0%)        0 (0%)
        ```
    
    
    

Você rotulou os nós de trabalho em um pool de trabalho com “ dedicated=edge ” e reimplantou todos os NLBs existentes nos nós de borda. Todos os NLBs adicionados posteriormente ao cluster também são implantados em um nó de borda no seu conjunto de trabalhadores de borda. Em seguida, evite que outras cargas de trabalho sejam executadas em nós do trabalhador de borda e bloqueiem o tráfego de entrada para NodePorts em nós do trabalhador.