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
- Assegure-se de que você tenha as funções do IBM Cloud IAM a seguir:
- Qualquer função de acesso de plataforma para o cluster
- Função de acesso de serviço Gravador ou Gerenciador para todos os namespaces
- Acesse o seu Red Hat OpenShift cluster.
-
Crie um pool de trabalhadores com o rótulo
dedicated=edgeou 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 classiccomando.
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 ``` - Para criar um pool de trabalhadores, você pode usar o
-
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
getcomando.
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> ``` - Para verificar o pool de trabalhadores, execute o
-
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 LoadBalancerSaída de exemplo:
PORT(S) AGE router-default 80:31228/TCP,443:31655/TCP 4h54m LoadBalancer 172.21.71.79 169.46.17.2 -
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 -
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
- 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 ocrc81nk5l10gfhdql4i3qg, o NLB tem um endereço IP externo de169.46.17.2.Saída de exemplo:oc describe nodes -l dedicated=edge | grep "169-46-17-2"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%) - 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 externo169.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.
- 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 (
- Pods de NLB
-
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.
- Exclua o pod. Por exemplo, se um dos pods do NLB do
public-crc81nk5l10gfhdql4i3qg-alb1nã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%) ``` - Exclua o pod. Por exemplo, se um dos pods do NLB do
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.