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 administradorEn cada uno de los clústeres de usuario, un valor de
nodePort
para el servidor de la API de KubernetesEn cada uno de los clústeres de usuario, un valor de
nodePort
para el tráfico de HTTP al servicio de entradaEn cada uno de los clústeres de usuario, un valor de
nodePort
para el tráfico de HTTPS al servicio de entradaUn 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
enManualLB
.Configura
network.ipMode
enstatic
.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 valoresnodePort
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
y192.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 es192.168.0.11
. El balanceador de cargas reenvía la solicitud a192.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 es192.168.0.10
. El balanceador de cargas reenvía la solicitud a192.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?
- Balanceo de cargas con Citrix
- Instala el ADC de BIG-IP de F5 para GKE On-Prem mediante el balanceo de cargas manual.
Solución de problemas
Para obtener más información, consulta Soluciona problemas.