|
Esta es documentación inédita para SUSE® Virtual Clusters v1.2.0 (Dev). |
How-to: Exponer cargas de trabajo fuera del clúster virtual
Esta guía explica cómo exponer cargas de trabajo que se ejecutan en clústeres virtuales gestionados por k3k a redes externas. El comportamiento varía según el modo de operación del clúster virtual.
Modo virtual
|
En modo virtual, la exposición externa directa de cargas de trabajo no está disponible. Este modo está diseñado para un fuerte aislamiento y no expone directamente la red del clúster virtual. |
Modo compartido
En modo compartido, cargas de trabajo pueden ser expuestas a la red externa utilizando tipos de servicio estándar de Kubernetes o un controlador de Ingress, dependiendo de tus requisitos.
|
`Services` siempre se sincronizan desde el clúster virtual al clúster anfitrión siguiendo el mismo principio descrito aquí para los pods. |
Opción 1: Usa NodePort o LoadBalancer
Para exponer un servicio como una aplicación web fuera del clúster anfitrión:
-
NodePort: Expone el servicio en un puerto estático en la IP de cada nodo. Accede al servicio enhttp://<NodeIP>:<NodePort>. -
LoadBalancer: Proporciona un equilibrador de carga externo (si es compatible con el entorno) y expone el servicio a través de la IP del equilibrador de carga.
|
La IP |
Opción 2: Usa ClusterIP para comunicación interna
Si la carga de trabajo solo debe ser accesible a otros servicios o pods dentro del clúster anfitrión:
-
Utiliza el tipo de servicio
ClusterIP. Esto expone el servicio en una IP interna, accesible solo dentro del clúster anfitrión.
Opción 3: Utiliza Ingress para el enrutamiento HTTP/HTTPS
Para un enrutamiento más avanzado, como el enrutamiento basado en nombre de host o en ruta, despliega un controlador de Ingress en el clúster virtual y expónlo a través de NodePort o LoadBalancer.
Esto te permite:
-
Definir recursos de Ingress en el clúster virtual.
-
Enrutar tráfico externo a servicios dentro del clúster virtual.
Opciones 4: Utiliza Ingress de Host
Para utilizar el controlador de Ingress de host, habilita sync.ingresses. Dado que los Ingress se sincronizan con el clúster anfitrión, los usuarios del clúster virtual no necesitan desplegar un controlador de Ingress.
apiVersion: k3k.io/v1beta1
kind: Cluster
metadata:
name: k3kcluster-shared-mode
spec:
mode: shared
...
sync:
ingresses:
enabled: true
Con esta sincronización habilitada, el certificado también puede ser emitido por el clúster anfitrión. Por ejemplo, el certificado puede ser emitido si estás utilizando Cert-Manager.