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!