Saltar al contenido principal

🌐 Exponiendo Aplicaciones con IP Pública en Kubernetes

Esta guía muestra dos formas de exponer aplicaciones utilizando IP pública en Kubernetes de SaveinCloud: a través de un Balanceador de Carga Dedicado o directamente en un nodo Worker.


🚀 Método 1: Balanceador de Carga Dedicado​

1. Creación del Cluster y Deploy de la Aplicación​

Accede al MARKETPLACE, instala el cluster Kubernetes y realiza el deploy de la aplicación deseada. En este ejemplo, usamos el dominio.com (Jakarta EE).

2. Cambiando la Topología​

Haz clic en Cambiar Topología al lado del entorno Kubernetes y añade un Load Balancer Dedicado con IP pública.

Topologia Kubernetes com Load Balancer

info

Puedes elegir NGINX, HAProxy, LS Web ADC o Varnish como balanceador.

La topología quedará similar a:

Topologia final com Load Balancer

Desenho de estrutura com Load Balancer

3. Crear A Record y Dominio Personalizado​

Crea un apuntamiento A record en tu dominio, apuntando a la IP pública asignada. Ejemplo: dominio.com.jele.website.

4. Emitir Certificado SSL​

  1. Accede a los Add-Ons del Load Balancer.
  2. Instala el Let's Encrypt Free SSL.

AddOn Lets Encrypt

  1. Indica el dominio apuntado y aplica.

Después de esto, tu aplicación estará disponible con dominio propio y tráfico cifrado vía HTTPS:

https://dominio.com.jele.website

🔄 Método 2: IP Pública Directa en el Worker​

En este método, la aplicación se accede directamente por la IP pública de un nodo Worker del cluster.

Desenho estrutura com IP direto no worker

1. Asignar IP Pública al Worker​

Ve a Cambiar Topología y añade una IP Pública al nodo Worker.

IP no Worker

2. Crear A Record para la Nueva IP​

Crea un A record apuntando a la nueva IP. Ejemplo: dominio-com-worker.jele.website.

3. Instalar Cert-Manager e Ingress Controller​

  1. Ve a los Add-ons del Control Plane.
  2. Instala el Certificate Manager.
  3. Esto también instalará un Ingress Controller NGINX con soporte para LoadBalancer.

Addon Certificate Manager

4. Aplicar Dominio​

Indica el dominio personalizado durante la instalación.

5. Limpiar App de Prueba​

Elimina la aplicación estándar de prueba creada:

kubectl delete deploy hello-cert-manager
kubectl delete svc hello-cert-manager
kubectl delete ing helloworld-cert

6. Crear Ingress con TLS​

Crea un archivo llamado dominio-com-worker-ingress.yaml con:

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

Preséntalo al cluster con:

kubectl apply -f dominio-com-worker-ingress.yaml

7. Probar el Acceso​

Después de aproximadamente 1 minuto, el certificado será emitido automáticamente. Accede a:

https://dominio-com-worker.jele.website

✅ Resultado​

Ahora tienes dos ingressos activos:

  • dominio.com - vía IP pública del Load Balancer
  • dominio-com-worker - vía IP pública del nodo Worker
tip

En producción, se recomienda elegir solo un enfoque, de acuerdo con tu estrategia de acceso y balanceo.


📚 Recursos Relacionados​


🧠 ¿Dudas?​

¡Habla con nuestro equipo de soporte técnico de SaveinCloud!