1
resposta

Ip nodes não acessa o loadbalancer

Fala comunidade,

Estive tentando acessar o loadbalancer pela porta 31000, via ip nodes do cluster, mas sem sucesso sabem oq pode ser? Percebi tbm q o external ip do nodes fica localhost, ae tentei localhost e foi suave!

1 resposta

Oi Rozenildo, tudo bem?

Primeiramente, agradeço por compartilhar sua dúvida com a comunidade e peço desculpas pela demora em retornar. Vamos tentar entender o problema que você está enfrentando ao acessar o load balancer pelo IP nodes do cluster.

Ao criar um serviço do tipo LoadBalancer no Kubernetes, o cluster provisiona um balanceador de carga externo que encaminha as solicitações para os pods que estão sendo executados no cluster. O balanceador de carga recebe tráfego externo e distribui as requisições entre os nós (nodes) do cluster que estão executando o serviço.

É importante verificar alguns pontos que podem estar causando o problema que você mencionou:

  1. Verifique se o serviço do tipo LoadBalancer foi criado corretamente. Para criar um serviço do tipo LoadBalancer, você precisa ter uma implementação correta do manifesto do Kubernetes. Por exemplo:
apiVersion: v1
kind: Service
metadata:
  name: meu-servico
spec:
  type: LoadBalancer
  selector:
    app: minha-aplicacao
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

Nesse exemplo, o serviço "meu-servico" está sendo exposto na porta 80 e encaminha o tráfego para os pods que têm a label "app=minha-aplicacao" na porta 8080.

  1. Verifique se o serviço está executando corretamente. Use o comando kubectl get services para listar os serviços no seu cluster. Verifique se o estado do serviço está "Running" e se o campo "EXTERNAL-IP" possui um endereço IP público válido. Se não houver um IP público, pode ser que seu ambiente Kubernetes não esteja configurado para provisionar automaticamente um IP externo (isso depende da plataforma que você está usando).

  2. Confirme se a porta do serviço está correta. No exemplo acima, estamos usando a porta 80 para o serviço, mas você mencionou a porta 31000. Verifique se a porta que você está usando é a mesma configurada no seu serviço.

  3. Verifique se as regras de firewall estão corretas. Se você estiver usando um ambiente local ou uma nuvem que exija regras de firewall, é importante garantir que as portas necessárias estejam abertas para permitir o tráfego de entrada para o serviço do LoadBalancer.

  4. Certifique-se de que os pods do serviço estão em execução e saudáveis. Você pode usar o comando kubectl get pods para verificar o estado dos pods associados ao serviço. Se os pods não estiverem em execução ou em um estado saudável, o balanceador de carga não poderá encaminhar o tráfego corretamente.

Quanto ao IP localhost que você mencionou, o acesso ao serviço através de "localhost" só funcionará se você estiver acessando o serviço de dentro de um dos nós do cluster. O acesso através do IP localhost em sua máquina local não irá funcionar, pois o IP localhost se refere ao próprio ambiente em que o serviço está sendo executado.

Para acessar o serviço do LoadBalancer a partir da sua máquina local, você precisa usar o endereço IP público atribuído ao serviço. Se você estiver usando um provedor de nuvem, geralmente encontrará esse IP listado na coluna "EXTERNAL-IP" do resultado do comando kubectl get services. Caso esteja usando um ambiente local, você precisará configurar o balanceador de carga externo para redirecionar as solicitações para os nós corretos.

Espero que tenha te ajudado.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software