Como aceder ao endereço IP externo do serviço baseado em balanceador de carga (load balancer service) no controlador Ingress?
sobes.tech IA
Resposta da IA
No controlador Ingress, não se acede diretamente ao IP externo de um serviço do tipo LoadBalancer. O controlador Ingress atua como ponto de entrada e encaminha o tráfego para diferentes serviços com base nas regras definidas no recurso Ingress.
Para aceder a um serviço do tipo LoadBalancer através do Ingress, deve-se:
-
Criar um serviço do tipo
LoadBalancerpara a sua aplicação. O provedor de Kubernetes na nuvem atribuirá um IP externo a este serviço.// service.yaml apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer -
Criar um recurso
Ingressque encaminhe o tráfego para este serviço.// ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.example.com # Ou outro domínio/caminho onde a aplicação estará acessível http: paths: - path: / pathType: Prefix backend: service: name: my-app-service # Nome do seu serviço LoadBalancer port: number: 80 # Porta do serviço para a qual o tráfego será redirecionado -
Garantir que o controlador Ingress está instalado e a funcionar no cluster. O controlador Ingress (por exemplo, Nginx Ingress Controller, Traefik) ouvirá o IP externo atribuído a ele e redirecionará as solicitações para
myapp.example.compara o serviçomy-app-service.
Assim, o acesso à aplicação é garantido através do IP externo do controlador Ingress, e não diretamente através do IP externo do serviço do tipo LoadBalancer (embora o Ingress possa usar esse LoadBalancer para aceder aos pods).