Los clústeres de GKE en VMware pueden ejecutarse con uno de los tres modos de balanceo de cargas: integrado, en paquetes o manual.
Con el modo integrado, GKE en VMware usa el balanceador de cargas BIG-IP de F5.
Con el modo de paquete, GKE en VMware proporciona y administra el balanceador de cargas. No necesitas obtener una licencia para un balanceador de cargas y la configuración que debes realizar es mínima.
Con el modo manual, GKE en VMware usa el balanceador de cargas que elijas. El modo de balanceo de cargas manual requiere que implementes más opciones de configuración que el modo integrado. El balanceador de cargas de Citrix es un balanceador de cargas de ejemplo que puedes usar con el modo de balanceo de cargas manual.
El balanceo de cargas manual es compatible con los siguientes tipos de clústeres:
Clústeres de usuario que tienen habilitado el plano de control V2 Con el plano de control V2, los nodos del plano de control de un clúster de usuario se encuentran en el clúster de usuario.
Clústeres de usuario que usan kubeception. El término kubeception hace referencia al caso en el que el plano de control de un clúster de usuario se ejecuta en uno o más nodos del clúster de administrador. Si el plano de control V2 no está habilitado, un clúster de usuario usa kubeception.
En esta página, se describen los pasos que debes seguir si decides usar el modo de balanceo de cargas manual.
En este tema, se reservan las direcciones IP para los nodos del plano de control y los nodos trabajadores a fin de usarlas más adelante. También debes reservar las direcciones IP para las IP virtuales (VIP) y decidir los valores de nodePort
. La idea es que elijas las direcciones IP y los valores de nodePort
que deseas usar y, luego, los registres en una hoja de cálculo o en alguna otra herramienta. Cuando esté todo listo para crear los clústeres, necesitarás las direcciones IP y los valores de nodePort
a fin de completar los archivos de configuración del clúster de administrador, el clúster de usuario y los archivos de bloqueo de IP de los clústeres.
También necesitarás las direcciones IP y los valores de nodePort
cuando configures el balanceador de cargas de forma manual para los clústeres de usuario. Aunque no necesitas configurar el balanceo de cargas para clústeres de administrador con alta disponibilidad de la versión 1.28 o superiores, en este tema, se describe la configuración de direcciones IP para los nodos del plano de control y la VIP del plano de control para los clústeres de administrador con alta disponibilidad.
Reserva las direcciones IP de los nodos
Con el modo de balanceo de cargas manual, no puedes usar DHCP. Debes especificar direcciones IP estáticas para los nodos del clúster. Debes reservar direcciones suficientes para los nodos del clúster de administrador y los nodos de todos los clústeres de usuario que deseas crear. Para obtener más información sobre cuántas direcciones IP de nodo reservar, consulta Planifica las direcciones IP (Plano de control V2) y Planifica las direcciones IP (kubeception).
Configurar direcciones IP
El lugar en el que configuras las direcciones IP estáticas que reservas depende del tipo de clúster y de si el plano de control V2 está habilitado en los clústeres de usuario.
Clúster de administrador de alta disponibilidad
En la siguiente tabla, se describe para qué sirven las direcciones IP y dónde las configuras para los clústeres de administrador de alta disponibilidad.
IP estáticas | Configuración |
---|---|
Nodos de plano de control | Archivo de configuración del clúster de administrador en la sección network.controlPlaneIPBlock.ips |
Clúster de usuario de CP V2
En la siguiente tabla, se describe para qué sirven las direcciones IP y dónde las configuras para los clústeres de usuario con el plano de control V2 habilitado.
IP estáticas | Configuración |
---|---|
nodos del plano de control | Archivo de configuración del clúster de usuario en la sección network.controlPlaneIPBlock.ips |
Nodos trabajadores | Archivo de bloque de IP de clúster de usuario y agrega la ruta de acceso en el campo network.ipMode.ipBlockFilePath del archivo de configuración del clúster de usuario |
Clúster de usuario de Kubeception
En la siguiente tabla, se describe para qué sirven las direcciones IP y dónde las configuras para los clústeres de usuario que usan kubeception.
IP estáticas | Configuración |
---|---|
nodos del plano de control | Archivo de bloque de IP del clúster de administrador y agrega la ruta de acceso en el campo network.ipMode.ipBlockFilePath del archivo de configuración del clúster de administrador |
Nodos trabajadores | Archivo de bloque de IP de clúster de usuario y agrega la ruta de acceso en el campo network.ipMode.ipBlockFilePath del archivo de configuración del clúster de usuario |
Reserva las direcciones IP para las VIP
Sin importar si usas el modo de balanceo de cargas integrado, empaquetado o manual, debes reservar varias direcciones IP que quieras usar para las IP virtuales (VIP) para el balanceo de cargas. Estas VIP permiten que los clientes externos accedan a los servidores de la API de Kubernetes y a tu servicio de entrada en los clústeres de usuario.
Cómo configurar las VIP
Dónde se configuran las VIP depende del tipo de clúster.
Clúster de administrador de alta disponibilidad
En la siguiente tabla, se describe para qué sirve la VIP y dónde se configura para los clústeres de administrador con alta disponibilidad.
VIP | Configuración |
---|---|
Es la VIP para el servidor de la API de Kubernetes del clúster de administrador | Archivo de configuración del clúster de administrador en el campo loadBalancer.vips.controlPlaneVIP |
Clúster de usuario de CP V2
En la siguiente tabla, se describe para qué son las VIP y dónde las configuras para los clústeres de usuario con el plano de control V2 habilitado.
VIP | Configuración |
---|---|
VIP para el servidor de la API de Kubernetes del clúster de usuario | Archivo de configuración del clúster de usuario en el campo loadBalancer.vips.controlPlaneVIP |
VIP para el servicio de entrada en el clúster de usuario | Archivo de configuración del clúster de usuario en el campo loadBalancer.vips.ingressVIP |
Clúster de usuario de Kubeception
En la siguiente tabla, se describe para qué sirven las VIP y dónde las configuras para los clústeres de usuario que usan kubeception.
VIP | Configuración |
---|---|
VIP para el servidor de la API de Kubernetes del clúster de usuario | Archivo de configuración del clúster de usuario en el campo loadBalancer.vips.controlPlaneVIP |
VIP para el servicio de entrada en el clúster de usuario | Archivo de configuración del clúster de usuario en el campo loadBalancer.vips.ingressVIP |
Reserva los valores de nodePort
En GKE on VMware, los servicios de Kubernetes exponen el servidor de la API de Kubernetes y el servicio de entrada.
Con el modo de balanceo de cargas manual, debes elegir tus propios valores de nodePort
para estos Services. Elige valores en el rango de 30,000 a 32,767.
Configurar nodePort
valores
Dónde configuras los valores de nodePort
depende de si el clúster de usuario tiene ControlPlane V2 habilitado.
Clúster de administrador de alta disponibilidad
No es necesario que configures nodePorts
para los clústeres de administrador de alta disponibilidad.
Clúster de usuario de CP V2
En la siguiente tabla, se describe para qué son las nodePorts
y dónde las configuras para los clústeres de usuario con el plano de control V2 habilitado.
nodePorts |
Configuración |
---|---|
HTTP nodePort para el servicio de entrada en el clúster de usuario |
Archivo de configuración de clústeres de usuario en
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para el servicio de entrada en el clúster de usuario |
Archivo de configuración de clústeres de usuario en
loadBalancer.manualLB.ingressHTTPSNodePort |
No es necesario que configures un nodePort
para la VIP del plano de control porque GKE en VMware controla el balanceo de cargas en los nodos del plano de control para los clústeres de usuario que tengan habilitado el plano de control V2.
Clúster de usuario de Kubeception
En la siguiente tabla, se describe para qué sirven los valores de nodePort
y dónde los configuras para los clústeres de usuario que usan kubeception.
nodePort |
Configuración |
---|---|
nodePort para el servidor de la API de Kubernetes del clúster de usuario |
Archivo de configuración del clúster de usuario en el campo loadBalancer.manualLB.controlPlaneNodePort |
nodePort para el servidor de Konnectivity del clúster de usuario (el servidor de Konnectivity usa la VIP del plano de control) |
Archivo de configuración del clúster de usuario en el campo loadBalancer.manualLB.konnectivityServerNodePort |
HTTP nodePort para el servicio de entrada en el clúster de usuario |
Archivo de configuración de clústeres de usuario en
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para el servicio de entrada en el clúster de usuario |
Archivo de configuración de clústeres de usuario en
loadBalancer.manualLB.ingressHTTPSNodePort |
Ejemplo de archivo de configuración de clúster
En el siguiente ejemplo, se muestra una parte de un archivo de configuración de clúster de administrador y de usuario:
Clúster de administrador de alta disponibilidad
network:
controlPlaneIPBlock:
netmask: "255.255.248.0"
gateway: "21.0.143.254"
ips:
- ip: "21.0.140.226"
hostname: "admin-cp-vm-1"
- ip: "21.0.141.48"
hostname: "admin-cp-vm-2"
- ip: "21.0.141.65"
hostname: "admin-cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
kind: ManualLB
Clúster de usuario de CP V2
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.6"
hostname: "cp-vm-1"
- ip: "172.16.21.7"
hostname: "cp-vm-2"
- ip: "172.16.21.8"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
Clúster de usuario de Kubeception
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
konnectivityServerNodePort: 30563
controlPlaneNodePort: 30562
Configura el balanceador de cargas
Usa la consola o las herramientas de administración de tu balanceador de cargas para configurar las siguientes asignaciones en tu balanceador de cargas. La forma de hacerlo depende de tu balanceador de cargas.
Clúster de administrador de alta disponibilidad
GKE en VMware controla de forma automática el balanceo de cargas del tráfico del plano de control para los clústeres de administrador de alta disponibilidad. Aunque no necesitas configurar una asignación en el balanceador de cargas, debes especificar una dirección IP en el campo loadBalancer.vips.controlPlaneVIP
.
Clúster de usuario de CP V2
Tráfico del plano de control
GKE en VMware controla de forma automática el balanceo de cargas del tráfico del plano de control para los clústeres de usuario que tengan el plano de control V2 habilitado. Aunque no necesitas configurar una asignación en el balanceador de cargas, debes especificar una dirección IP en el campo loadBalancer.vips.controlPlaneVIP
.
Tráfico del plano de datos
A continuación, se muestra la asignación a las direcciones IP y los valores de nodePort
para el tráfico del plano de datos:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Agrega estas asignaciones a todos los nodos del clúster de usuario, tanto los del plano de control como los trabajadores. Debido a que configuraste NodePorts en el clúster, Kubernetes abre los NodePorts en todos los nodos del clúster. Esto permite que cualquier nodo del clúster controle el tráfico del plano de datos.
Después de configurar las asignaciones, el balanceador de cargas escucha el tráfico en la dirección IP que configuraste para la VIP de entrada del clúster de usuario en los puertos HTTP y HTTPS estándar. El balanceador de cargas enruta las solicitudes a cualquier nodo del clúster. Después de que una solicitud se enruta a uno de los nodos del clúster, las herramientas de redes internas de Kubernetes toman el control y enrutan la solicitud al Pod de destino.
Clúster de usuario de Kubeception
Tráfico del plano de control
A continuación, se muestra la asignación a las direcciones IP y los valores de nodePort
para el tráfico del plano de control:
- (
controlPlaneVIP
:443
) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
) - (
controlPlaneVIP
:8132
) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort
)
Agrega esta asignación a todos los nodos del clúster admin, tanto para el clúster de administrador como para los del plano de control del clúster de usuario.
Tráfico del plano de datos
A continuación, se muestra la asignación a las direcciones IP y los valores de nodePort
para el tráfico del plano de datos:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Agrega estas asignaciones para todos los nodos del clúster de usuario. Con los clústeres de usuario que usan kubeception, todos los nodos del clúster son nodos trabajadores.
Restablece conexiones a nodos con errores (recomendado)
Además de los requisitos anteriores, te recomendamos configurar el balanceador de cargas para restablecer las conexiones de los clientes cuando detecte una falla en el nodo de backend. Sin esta configuración, los clientes del servidor de la API de Kubernetes pueden dejar de responder durante varios minutos cuando una instancia de servidor falla, lo que puede causar inestabilidad en el plano de control de Kubernetes.
- Con BIG-IP de F5, esta configuración se llama Action On Service Down en la página de configuración del grupo de backend.
- Con HAProxy, esta configuración se llama on-marked-down shutdown-sessions en la configuración del servidor de backend.
- Si usas un balanceador de cargas diferente, debes consultar la documentación para encontrar la configuración equivalente.
Obtén asistencia para el balanceo de cargas manual
Google no proporciona asistencia para los balanceadores de cargas configurados con el modo de balanceo de cargas manual. Si tienes problemas con el balanceador de cargas, comunícate con el proveedor.
¿Qué sigue?
- Balanceo de cargas con Citrix
- Instala el ADC de BIG-IP de F5 para GKE en VMware con el balanceo de cargas manual