Habilita el modo de balanceo de cargas manual

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.

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?