Pular para o conteúdo principal

🌐 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.

Topologia Kubernetes com Load Balancer

info

Você pode escolher NGINX, HAProxy, LS Web ADC ou Varnish como balanceador.

A topologia ficará semelhante a:

Topologia final com Load Balancer

Desenho de estrutura com Load Balancer

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

  1. Acesse os Add-Ons do Load Balancer.
  2. Instale o Let's Encrypt Free SSL.

AddOn Lets Encrypt

  1. 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.

Desenho estrutura com IP direto no worker

1. Alocar IP Público no Worker

Vá em Alterar Topologia e adicione um IP Público ao nó Worker.

IP no 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

  1. Vá aos Add-ons do Control Plane.
  2. Instale o Certificate Manager.
  3. Isso também instalará um Ingress Controller NGINX com suporte a LoadBalancer.

Addon Certificate Manager

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 Balancer
  • dominio-com-worker - via IP público do nó Worker
dica

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!