Clusters da VPC: por que meu app não pode se conectar através do balanceador de carga?

Resolva problemas de conectividade do balanceador de carga da VPC quando não for possível acessar seu aplicativo por meio de um serviço de balanceador de carga da VPC.

Provedor de infraestrutura: VPC

Você expôs seu app criando um serviço LoadBalancer do Kubernetes em seu cluster VPC. Ao tentar se conectar ao seu app usando o nome do host designado ao LoadBalancer do Kubernetes, a conexão falha ou atinge o tempo limite.

Ao executar oc describe svc <kubernetes_lb_service_name>, você pode ver uma mensagem de aviso semelhante a uma das seguintes na seção Eventos:

The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service is offline.
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service was deleted from your VPC.

Ao criar um serviço LoadBalancer do Kubernetes no cluster, um balanceador de carga VPC é criado automaticamente na VPC. O balanceador de carga do VPC roteia solicitações apenas para o app que o serviço LoadBalancer do Kubernetes expõe.

As solicitações não podem ser roteadas para o app nas situações a seguir:

  • Um grupo de segurança VPC está bloqueando o tráfego de entrada para seus nós do trabalhador, incluindo as solicitações recebidas para o seu app.
  • O balanceador de carga VPC está off-line, por exemplo, devido a erros de fornecimento do balanceador de carga ou erros de conexão do VSI.
  • O balanceador de carga VPC é excluído por meio do console ou da CLI da VPC.
  • A entrada DNS do balanceador de carga VPC ainda está sendo registrada.
  • Você atingiu o número máximo de balanceadores de carga do VPC permitidos por conta. Verifique a Documentação de cotas da VPC para cotas de recursos da VPC em todos os clusters na VPC.

Verifique se nenhum grupo de segurança do VPC está bloqueando o tráfego para o seu cluster e se o balanceador de carga do VPC está disponível.

  1. Verifique se o balanceador de carga do VPC existe para o serviço LoadBalancer do Kubernetes. Na saída, procure o balanceador de carga da VPC que está formatado kube-<cluster_ID>-<kubernetes_lb_service_UID>. É possível obter o UID de serviço LoadBalancer do Kubernetes executando oc get svc <service_name> -o yaml.

    ibmcloud is load-balancers
    
    • Se o balanceador de carga do VPC não estiver listado, ele não existirá por um dos motivos a seguir:
    • Você atingiu o número máximo de balanceadores de carga do VPC permitidos por conta. Em todos os clusters de VPC na VPC, podem ser criados no máximo 20 balanceadores de carga de VPC. Um balanceador de carga do VPC é criado para cada serviço LoadBalancer do Kubernetes criado e roteia solicitações somente para o serviço LoadBalancer do Kubernetes.
    • O balanceador de carga do VPC foi excluído por meio do console do VPC ou da CLI. Para recriar o balanceador de carga de VPC para o serviço LoadBalancer do Kubernetes, reinicie o principal do Kubernetes executando ibmcloud oc cluster master refresh --cluster <cluster_name_or_id>.

    Para remover a configuração de balanceamento de carga para um app no cluster de VPC, exclua o serviço LoadBalancer do Kubernetes executando oc delete svc <kubernetes_lb_service_name>. O balanceador de carga do VPC associado ao serviço LoadBalancer do Kubernetes é excluído automaticamente de seu VPC.

  2. Se o balanceador de carga existir, visualize os grupos de segurança de VPC que estão anexados a ele. Se você tiver feito alguma modificação no grupo de segurança kube-lbaas-<cluster-id>, que é anexado automaticamente ao balanceador de carga, configure as regras originais de volta no grupo de segurança.

    • Se o balanceador de carga de VPC estiver listado e você não tiver modificado nenhum grupo de segurança anexado, ele pode não ser responsivo pelas razões a seguir:
      • Sua entrada de DNS ainda pode estar registrando. Quando um balanceador de carga VPC é criado, o nome do host é registrado por meio de um DNS público. Às vezes, pode levar vários minutos para que essa entrada de DNS seja replicada para o DNS específico que o cliente está usando. É possível aguardar que o nome do host seja registrado em seu DNS ou acessar o balanceador de carga VPC diretamente usando um de seus endereços IP. Para localizar os endereços IP do balanceador de carga da VPC, execute ibmcloud is lb <LB_ID> e procure o campo IPs públicos.
      • Se depois de vários minutos você não conseguir acessar o balanceador de carga, ele poderá estar off-line por problemas de fornecimento ou de conexão. Abra um caso de suporte da IBM Cloud. Para o tipo, selecione Técnico. Para a categoria, selecione Rede na seção VPC. Na descrição, inclua o ID do cluster e o ID do balanceador de carga VPC.