🌐 Expondo Aplicações com IP Público no Kubernetes
Este guia mostra duas formas de expor aplicações utilizando IP público no Kubernetes da SaveinCloud: através de um Balanceador de Carga Dedicado ou diretamente em um nó Worker.
🚀 Método 1: Balanceador de Carga Dedicado
1. Criação do Cluster e Deploy da Aplicação
Acesse o MARKETPLACE, instale o cluster Kubernetes e faça o deploy da aplicação desejada. Neste exemplo, usamos o dominio.com (Jakarta EE).
2. Alterando a Topologia
Clique em Alterar Topologia ao lado do ambiente Kubernetes e adicione um Load Balancer Dedicado com IP público.
Você pode escolher NGINX, HAProxy, LS Web ADC ou Varnish como balanceador.
A topologia ficará semelhante a:
3. Criar A Record e Domínio Personalizado
Crie um apontamento A record no seu domínio, apontando para o IP público alocado. Exemplo: dominio.com.jele.website
.
4. Emitir Certificado SSL
- Acesse os Add-Ons do Load Balancer.
- Instale o Let's Encrypt Free SSL.
- Informe o domínio apontado e aplique.
Após isso, sua aplicação estará disponível com domínio próprio e tráfego criptografado via HTTPS:
https://dominio.com.jele.website
🔄 Método 2: IP Público Direto no Worker
Neste método, a aplicação é acessada diretamente pelo IP público de um nó Worker do cluster.
1. Alocar IP Público no Worker
Vá em Alterar Topologia e adicione um IP Público ao nó Worker.
2. Criar A Record para Novo IP
Crie um A record apontando para o novo IP. Exemplo: dominio-com-worker.jele.website
.
3. Instalar Cert-Manager e Ingress Controller
- Vá aos Add-ons do Control Plane.
- Instale o Certificate Manager.
- Isso também instalará um Ingress Controller NGINX com suporte a LoadBalancer.
4. Aplicar Domínio
Informe o domínio personalizado durante a instalação.
5. Limpar App de Teste
Remova a aplicação padrão de teste criada:
kubectl delete deploy hello-cert-manager
kubectl delete svc hello-cert-manager
kubectl delete ing helloworld-cert
6. Criar Ingress com TLS
Crie um arquivo chamado dominio-com-worker-ingress.yaml
com:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dominio-com-worker
namespace: default
annotations:
kubernetes.io/ingress.class: nginx-cert
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
spec:
tls:
- hosts:
- dominio-com-worker.jele.website
secretName: external-domain-tls
rules:
- host: dominio-com-worker.jele.website
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: dominio-com
port:
number: 80
Apresente ao cluster com:
kubectl apply -f dominio-com-worker-ingress.yaml
7. Testar o Acesso
Após cerca de 1 minuto, o certificado será emitido automaticamente. Acesse:
https://dominio-com-worker.jele.website
✅ Resultado
Você agora tem dois ingressos ativos:
dominio.com
- via IP público do Load Balancerdominio-com-worker
- via IP público do nó Worker
Em produção, recomenda-se escolher apenas uma abordagem, de acordo com sua estratégia de acesso e balanceamento.
📚 Recursos Relacionados
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!