Habilita el modo de balanceo de cargas manual

Los clústeres de GKE On-Prem pueden ejecutarse con uno de los tres modos de balanceo de cargas: integrado, empaquetado o manual. Con el modo integrado, un clúster de GKE On-Prem usa el balanceador de cargas BIG-IP de F5. Con el modo de paquete, GKE on-prem proporciona y administra el balanceador de cargas. No es necesario que obtengas una licencia para un balanceador de cargas y la configuración que debes hacer es mínima. Con el modo manual, GKE On-Prem usa un balanceador de cargas diferente del que elijas. El modo de balanceo de cargas manual requiere que realices más opciones de configuración que con el modo integrado. En esta página, se describen los pasos que debes seguir si decides usar el modo de balanceo de cargas manual.

El balanceador de cargas de Citrix es un balanceador de cargas de ejemplo que puedes usar con el modo de balanceo de cargas manual.

En este artículo, se reservan las direcciones IP y los valores de nodePort para usarlos más adelante. La idea es que elijas las direcciones IP y los valores de nodePort que deseas usar para el balanceo de cargas y los nodos del clúster. Sin embargo, en este momento, no puedes hacer nada con las direcciones y los valores de nodePort. Más adelante, cuando estés listo para instalar GKE On-Prem, necesitarás las direcciones y los valores de nodePort a fin de completar el archivo de configuración del clúster. También necesitarás las direcciones y los valores de nodePort cuando configures el balanceador de cargas de forma manual.

Reserva las direcciones IP virtuales

Sin importar si usas el modo de balanceo de cargas integrado, manual o en paquetes, debes reservar varias direcciones IP virtuales (VIP) que quieras usar para el balanceo de cargas. Estos VIP permiten que clientes externos que accedan a tus servidores de API de Kubernetes, tus servicios de entrada y tus servicios de complemento. Si deseas obtener instrucciones para reservar las VIP, consulta Reserva direcciones IP virtuales.

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. Si deseas obtener más detalles sobre cuántas direcciones IP de nodo se deben reservar, consulta Configura IP estáticas.

Reserva los valores de nodePort

En un clúster de GKE On-Prem, el servidor de la API de Kubernetes, el servicio de entrada y el servicio de complemento se implementan como Services de Kubernetes de tipo NodePort. 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. Después de elegir los valores de nodePort, resérvalos para usarlos más adelante cuando modifiques el archivo de configuración del clúster.

Elige y reserva los siguientes valores de nodePort.

  • En cada VIP que hayas reservado para un servidor de la API de Kubernetes, reserva un valor de nodePort.

  • En cada VIP que hayas reservado en un servicio de entrada del clúster, reserva dos valores de nodePort: uno para el tráfico de HTTP y otro para el tráfico de HTTPS. Esto solo se aplica al clúster de usuario.

  • En cada VIP que hayas reservado para un servicio de complementos del clúster, reserva un valor de nodePort. Esto solo se aplica al clúster de administrador.

Por ejemplo, supongamos que deseas tener dos clústeres de usuario y quieres usar complementos. Deberás elegir y reservar los siguientes valores de nodePort:

  • Un valor de nodePort para el servidor de la API de Kubernetes en el clúster de administrador

  • En cada uno de los clústeres de usuario, un valor de nodePort para el servidor de la API de Kubernetes

  • En cada uno de los clústeres de usuario, un valor de nodePort para el tráfico de HTTP al servicio de entrada

  • En cada uno de los clústeres de usuario, un valor de nodePort para el tráfico de HTTPS al servicio de entrada

  • Un valor nodePort para el servicio de complemento en el clúster de administrador.

Por lo tanto, en el ejemplo anterior, tendrías que separar 8 valores nodePort.

Modifica el archivo de configuración de GKE On-Prem

Prepara un archivo de configuración para cada uno de los clústeres: el clúster de administrador y el clúster de usuario.

  • Configura loadBalancer.kind en ManualLB.

  • Configura network.ipMode en static.

  • Configura network.ipBlockFilePath en la ruta del archivo YAML de IP estática para tu clúster. Esto se documenta en Configura direcciones IP estáticas. DHCP no es una opción para el modo de balanceo de cargas manual.

  • Actualiza el campo loadBalancer.manualLB con los valores nodePort que elegiste para el clúster.

En el siguiente ejemplo, se muestra una parte de un archivo de configuración actualizado:

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879
    controlPlaneNodePort: 30562:
    addonsnodeport: 31405

Configura el balanceador de cargas

Ahora que actualizaste el archivo de configuración, accede a la consola de administración del balanceador de cargas y configura los VIP:

  • Un plano de control del clúster para clústeres de administrador y de usuarios, puerto TCP 443
  • Un administrador de complementos para el clúster de administrador si se usa, puerto TCP 8443
  • Un controlador de entrada del clúster de usuario, puerto TCP 80
  • Un controlador de entrada del clúster de usuario, puerto TCP 443

Ejemplo de balanceo de cargas

Un Service tiene un campo ports, que es un arreglo de objetos ServicePort. En un Service de tipo NodePort, cada objeto ServicePort tiene un protocol, un port, un nodePort y un targetPort. Por ejemplo, a continuación, se muestra una parte de un manifiesto para un Service que tiene dos objetos ServicePort en su arreglo ports:

...
kind: Service
...
spec:
  ...
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    nodePort: 32676
    targetPort: 8080
  - protocol: TCP
    port: 443
    nodePort: 32677
    targetPort: 443
...

Supongamos que el Service anterior representa el servicio de entrada para uno de los clústeres de usuario. También supongamos que tomaste las siguientes decisiones:

  • 203.0.113.5 es la VIP para el servicio de entrada del clúster de usuario.

  • Las direcciones del nodo del clúster de usuario son 192.168.0.10, 192.168.0.11 y 192.168.0.12.

Después de configurar el balanceador de cargas, el tráfico se enruta de la siguiente manera:

  • Un cliente envía una solicitud a 203.0.113.5 en el puerto TCP 80. El balanceador de cargas elige un nodo del clúster de usuario. Para este ejemplo, supongamos que la dirección del nodo es 192.168.0.11. El balanceador de cargas reenvía la solicitud a 192.168.0.11 en el puerto TCP 32676. Las reglas de iptables del nodo reenvían la solicitud a un Pod adecuado en el puerto TCP 8080.

  • Un cliente envía una solicitud a 203.0.113.5 en el puerto TCP 443. El balanceador de cargas elige un nodo del clúster de usuario. Para este ejemplo, supongamos que la dirección del nodo es 192.168.0.10. El balanceador de cargas reenvía la solicitud a 192.168.0.10 en el puerto TCP 32677. Las reglas de iptables en el nodo reenvían la solicitud a un Pod adecuado en el puerto TCP 443.

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?

Solución de problemas

Para obtener más información, consulta Soluciona problemas.