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

Puedes elegir NGINX, HAProxy, LS Web ADC o Varnish como balanceador.
La topología quedará similar a:


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
- Accede a los Add-Ons del Load Balancer.
- Instala el Let's Encrypt Free SSL.

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

1. Asignar IP Pública al Worker
Ve a Cambiar Topología y añade una IP Pública al nodo 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
- Ve a los Add-ons del Control Plane.
- Instala el Certificate Manager.
- Esto también instalará un Ingress Controller NGINX con soporte para LoadBalancer.

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 Balancerdominio-com-worker- vía IP pública del nodo Worker
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!