Te recomendamos que configures uno de los siguientes modos de balanceo de cargas:
Con el modo empaquetado, Google Distributed Cloud proporciona y administra el balanceador de cargas. No necesitas obtener una licencia para un balanceador de cargas y la configuración que debes hacer es mínima.
Con el modo manual, Google Distributed Cloud usa un balanceador de cargas de tu elección, como F5 BIG-IP o Citrix. El modo de balanceo de cargas manual requiere que implementes más opciones de configuración que el modo de paquetes.
El balanceo de cargas manual es compatible con los siguientes tipos de clústeres:
Clústeres de usuario que tienen habilitado Controlplane V2. Con Controlplane V2, los nodos del plano de control para un clúster de usuario se encuentran en el mismo 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 Controlplane V2 no está habilitado, un clúster de usuario usa kubeception.
En esta página, se describen los pasos que debes seguir si eliges 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 con el objetivo 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és listo para crear los clústeres, necesitarás las direcciones IP y los valores de nodePort
para completar los archivos de configuración del clúster de administrador, el clúster de usuario y los archivos de bloques de IP de los clústeres.
También necesitarás las direcciones IP y los valores de nodePort
cuando configures de forma manual el balanceador de cargas para los clústeres de usuario.
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 detalles sobre cuántas direcciones IP de nodos debes reservar, consulta Planifica las direcciones IP (Controlplane V2) y Planifica las direcciones IP (kubeception).
Configurar direcciones IP
La ubicación de las direcciones IP estáticas que reservaste depende del tipo de clúster y de si Controlplane V2 está habilitado en los clústeres de usuario.
Clúster de administrador de HA
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 |
1.16 y anteriores: Nodos de complementos | 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 |
En la versión 1.28 y posteriores, los clústeres de administrador de HA nuevos no tienen nodos de complemento, por lo que no es necesario reservar direcciones IP para los nodos de complemento como en las versiones anteriores.
Clúster de administrador sin 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 que no tienen alta disponibilidad.
IP estáticas | Configuración |
---|---|
Nodo 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 de complementos | Archivo de bloqueo de IP del clúster de administrador |
En la versión 1.28 y posteriores, todos los clústeres de administrador nuevos deben ser clústeres de alta disponibilidad (HA) con 3 nodos de plano de control.
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 Controlplane V2 habilitado.
IP estáticas | Configuración |
---|---|
Nodos de 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 del 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 de 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 del 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, en paquetes o manual, debes reservar varias direcciones IP que quieras usar para las IP virtuales (VIP) para el balanceo de cargas. Estas VIP permiten a los clientes externos acceder a los servidores de la API de Kubernetes y a tu servicio de entrada en los clústeres de usuario.
Configura VIP
La ubicación en la que configuras las VIP depende del tipo de clúster.
Clúster de administrador de HA
En la siguiente tabla, se describe para qué sirve la VIP y dónde se configura para los clústeres de administrador de 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 |
1.15 y versiones anteriores: VIP de complementos | Archivo de configuración del clúster de administrador en el campo loadBalancer.vips.addonsVIP |
Ten en cuenta las siguientes diferencias en las versiones:
En la versión 1.16 y posteriores, no necesitas configurar una VIP de complementos para los clústeres de administrador con alta disponibilidad.
En la versión 1.28 y posteriores, los clústeres de administrador de alta disponibilidad nuevos no tienen nodos de complemento.
Clúster de administrador sin alta disponibilidad
En la siguiente tabla, se describe para qué sirve la VIP y dónde se configura para los clústeres de administrador que no tienen 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 |
1.15 y versiones anteriores: VIP de complementos | Archivo de configuración del clúster de administrador en el campo loadBalancer.vips.addonsVIP |
Ten en cuenta las siguientes diferencias en las versiones:
En la versión 1.16 y posteriores, no necesitas configurar una VIP de complementos para clústeres de administrador sin alta disponibilidad.
Clúster de usuario de CP V2
En la siguiente tabla, se describe para qué sirven las VIP y dónde las configuras para los clústeres de usuario con Controlplane 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 Google Distributed Cloud, el servidor de la API de Kubernetes y el servicio de entrada están expuestos por Servicios de Kubernetes.
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 valores de nodePort
La ubicación en la que configuras los valores de nodePort
depende de si el clúster de usuario tiene habilitado ControlPlane V2.
Clúster de administrador de HA
En la siguiente tabla, se describe para qué sirve el nodePort
y dónde lo configuras para los clústeres de administrador de alta disponibilidad.
nodePort |
Configuración |
---|---|
1.15 y anteriores: nodePort para nodos de complementos |
Archivo de configuración del clúster de administrador en el campo loadBalancer.manualLB.addonsNodePort |
En la versión 1.16 y posteriores, no necesitas configurar un nodePort
para los nodos de complementos destinados a clústeres de administrador de alta disponibilidad.
Clúster de administrador sin alta disponibilidad
En la siguiente tabla, se describe para qué sirven los valores de nodePort
y dónde los configuras para los clústeres de administrador que no tienen alta disponibilidad.
nodePort |
Configuración |
---|---|
1.16 y anteriores: nodePort para el servidor de la API de Kubernetes del clúster de administrador |
1.15 y anteriores: Archivo de configuración del clúster de administrador en el campo loadBalancer.vips.controlPlaneNodePort |
1.15 y anteriores: nodePort para nodos de complementos |
Archivo de configuración del clúster de administrador en el campo loadBalancer.manualLB.addonsNodePort |
En la versión 1.16 y posteriores, no necesitas configurar un nodePort
para nodos de complementos destinados a clústeres de administrador sin alta disponibilidad.
Clúster de usuario de CP V2
En la siguiente tabla, se describe para qué sirven los nodePorts
y dónde los configuras para los clústeres de usuario con Controlplane 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 |
nodePort de HTTPS 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 una nodePort
para la VIP del plano de control porque Google Distributed Cloud maneja el balanceo de cargas en los nodos del plano de control para los clústeres de usuario con Controlplane V2 habilitado.
Clúster de usuario de Kubeception
En la siguiente tabla, se describe para qué sirven los valores 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 |
nodePort de HTTPS 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ústeres de administrador y usuario:
Clúster de administrador de HA
Versión 1.16 y posteriores:
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
La versión 1.15 y las anteriores requieren una VIP y
nodeport
para los nodos de complementos.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" addonsVIP: "203.0.113.4" kind: ManualLB manualLB: addonsNodePort: 31405
Clúster de administrador sin alta disponibilidad
Versión 1.16 y posteriores:
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB manualLB: controlPlaneNodePort: 30562
La versión 1.15 y las versiones anteriores requieren una VIP y
nodeport
para los nodos de complementos.network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "172.16.21.41" kind: ManualLB manualLB: controlPlaneNodePort: 30562 addonsNodePort: 30563
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 HA
Tráfico a los nodos del plano de control
Google Distributed Cloud 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
.
Tráfico a los servicios en los nodos del complemento
1.15 y anteriores: A continuación, se muestra la asignación a las direcciones IP y los valores de nodePort
para el tráfico a los servicios en los nodos de complemento:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Agrega esta asignación para todos los nodos del clúster de administrador, tanto los nodos del plano de control como los nodos del complemento.
En la versión 1.16 y posteriores, no necesitas configurar esta asignación de nodos de complementos para clústeres de administrador de alta disponibilidad.
Clúster de administrador sin alta disponibilidad
Tráfico del plano de control
A continuación, se muestra la asignación a la dirección IP y el valor de nodePort
para el nodo del plano de control:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Agrega esta asignación para todos los nodos del clúster de administrador, tanto el nodo del plano de control como los nodos del complemento.
Tráfico a los servicios en los nodos del complemento
1.15 y anteriores: A continuación, se muestra la asignación a las direcciones IP y los valores de nodePort
para los servicios que se ejecutan en nodos de complemento:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Agrega esta asignación para todos los nodos del clúster de administrador, tanto el nodo del plano de control como los nodos del complemento.
En la versión 1.16 y posteriores, no necesitas configurar esta asignación de nodos de complementos para clústeres de administrador sin alta disponibilidad.
Clúster de usuario de CP V2
Tráfico del plano de control
Google Distributed Cloud controla de forma automática el balanceo de cargas del tráfico del plano de control para los clústeres de usuario con Controlplane 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 para todos los nodos del clúster de usuario, tanto los nodos 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 redes internas de Kubernetes toman el control y las enrutan 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 para todos los nodos del clúster de admin, tanto el clúster de administrador como los nodos 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 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