Habilita el modo de balanceo de cargas manual

Te recomendamos que configures uno de los siguientes modos de balanceo de cargas:

  • Con el modo de paquete, Google Distributed Cloud 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 realizar es mínima.

  • Con el modo manual, Google Distributed Cloud usa el balanceador de cargas que elijas, como BIG-IP de F5 o Citrix. El modo de balanceo de cargas manual requiere que implementes más opciones de configuración que el modo integrado.

El balanceo de cargas manual es compatible con los siguientes tipos de clústeres:

  • Clústeres de usuario que tienen Controlplane V2 habilitado Con Controlplane V2, los nodos del plano de control de un clúster de usuario están en el clúster de usuario.

  • Clústeres de usuarios 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 decides usar el modo de balanceo de cargas manual.

En este tema, reservarás las direcciones IP para los nodos del plano de control y los nodos de trabajo para usarlas más adelante. También puedes reservar direcciones IP para las IPs 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 alguna otra herramienta. Cuando tengas todo listo para crear los clústeres, necesitarás las direcciones IP y los valores de nodePort para completar los archivos de configuración de tu clúster de administrador y tu clúster de usuario, y los archivos de bloque de IP para tus 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 usuarios.

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 detalles sobre cuántas direcciones IP de nodos debes reservar, consulta Planifica tus direcciones IP (Controlplane V2) y Planifica tus direcciones IP (kubeception).

Configurar direcciones IP

El lugar en el que configures las direcciones IP estáticas que reservaste depende el tipo de clúster y de si Controlplane V2 está habilitado en tus clústeres de usuario.

Clúster de administrador con 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 HA.

IP estáticas Configuration
Nodos de plano de control Archivo de configuración del clúster de administrador en la sección network.controlPlaneIPBlock.ips
1.16 y versiones 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 versiones posteriores, los nuevos clústeres de administrador de HA no tienen nodos de complementos, por lo que no necesitas reservar direcciones IP para los nodos de complementos como en 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 clústeres de administrador que no tienen HA.

IP estáticas Configuration
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 versiones posteriores, todos los clústeres de administrador nuevos deben ser clústeres con alta disponibilidad (HA) con 3 nodos del plano de control.

Clúster de usuarios 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 usuarios con Controlplane V2 habilitado.

IP estáticas Configuration
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 usuarios de Kubeception

En la siguiente tabla, se describe para qué sirven las direcciones IP y dónde las configuras para los clústeres de usuarios que usan kubeception.

IP estáticas Configuration
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 direcciones IP para las VIPs

Sin importar si usas el modo de balanceo de cargas integrado, por paquetes o manual, debes reservar varias direcciones IP que quieras usar para las IP virtuales (VIP) del balanceo de cargas. Estas VIPs permiten que los clientes externos accedan a los servidores de la API de Kubernetes y al servicio de entrada en los clústeres de usuarios.

Configura VIPs

El lugar donde configures las VIPs depende del tipo de clúster.

Clúster de administrador con alta disponibilidad

En la siguiente tabla, se describe para qué sirve la VIP y dónde la configuras para los clústeres de administrador de alta disponibilidad.

VIP Configuration
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 entre las versiones:

  • En la versión 1.16 y versiones posteriores, no es necesario configurar un VIP de complementos para los clústeres de administración de HA.

  • En la versión 1.28 y versiones posteriores, los nuevos clústeres de administrador de HA no tienen nodos de complementos.

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 HA.

VIP Configuration
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 entre las versiones:

En la versión 1.16 y versiones posteriores, no necesitas configurar una VIP de complementos para clústeres de administrador que no tengan HA.

Clúster de usuarios de CP V2

En la siguiente tabla, se describe para qué sirven las VIPs y dónde las configuras para los clústeres de usuarios con Controlplane V2 habilitado.

VIP Configuration
VIP para el servidor de la API de Kubernetes del clúster de usuario Archivo de configuración del clúster de usuarios 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 usuarios en el campo loadBalancer.vips.ingressVIP

Clúster de usuarios de Kubeception

En la siguiente tabla, se describe para qué sirven las VIPs y dónde las configuras para los clústeres de usuarios que usan kubeception.

VIP Configuration
VIP para el servidor de la API de Kubernetes del clúster de usuario Archivo de configuración del clúster de usuarios 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 usuarios en el campo loadBalancer.vips.ingressVIP

Reserva los valores de nodePort

En Google Distributed Cloud, los Services 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.

Configura los valores de nodePort

El lugar en el que configures los valores de nodePort depende de si el clúster de usuario tiene ControlPlane V2 habilitado.

Clúster de administrador con alta disponibilidad

En la siguiente tabla, se describe para qué sirve nodePort y dónde se configura para los clústeres de administrador de HA.

nodePort Configuration
1.15 y versiones 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 versiones posteriores, no es necesario configurar un nodePort para los nodos de complementos de los clústeres de administración de HA.

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 son de alta disponibilidad.

nodePort Configuration
1.16 y versiones anteriores: nodePort para el servidor de la API de Kubernetes del clúster de administrador 1.15 y versiones anteriores: Archivo de configuración del clúster de administrador en el campo loadBalancer.vips.controlPlaneNodePort
1.15 y versiones 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 versiones posteriores, no necesitas configurar un nodePort para los nodos de complementos de clústeres de administración sin HA.

Clúster de usuarios de CP V2

En la siguiente tabla, se describe para qué sirven los nodePorts y dónde los configuras para los clústeres de usuarios con Controlplane V2 habilitado.

nodePorts Configuration
nodePort HTTP para el servicio de entrada en el clúster de usuario Archivo de configuración del clúster de usuarios en loadBalancer.manualLB.ingressHTTPNodePort
nodePort de HTTPS para el servicio de entrada en el clúster de usuario Archivo de configuración del clúster de usuarios en loadBalancer.manualLB.ingressHTTPSNodePort

No es necesario que configures un nodePort para la VIP del plano de control, ya que Google Distributed Cloud controla el balanceo de cargas en los nodos del plano de control para los clústeres de usuarios con Controlplane V2 habilitado.

Clúster de usuarios de Kubeception

En la siguiente tabla, se describe para qué sirven los valores nodePort y dónde los configuras para los clústeres de usuarios que usan kubeception.

nodePort Configuration
nodePort para el servidor de la API de Kubernetes del clúster de usuario Archivo de configuración del clúster de usuarios 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 usuarios en el campo loadBalancer.manualLB.konnectivityServerNodePort
nodePort HTTP para el servicio de entrada en el clúster de usuario Archivo de configuración del clúster de usuarios en loadBalancer.manualLB.ingressHTTPNodePort
nodePort de HTTPS para el servicio de entrada en el clúster de usuario Archivo de configuración del clúster de usuarios en loadBalancer.manualLB.ingressHTTPSNodePort

Ejemplo de archivo de configuración del clúster

En el siguiente ejemplo, se muestra una parte de un archivo de configuración de clúster de usuario y administrador:

Clúster de administrador con alta disponibilidad

  • Versión 1.16 y versiones 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 versiones anteriores requieren un 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 versiones 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 versiones anteriores requieren un 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 usuarios 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 usuarios 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 del balanceador de cargas.

Clúster de administrador con alta disponibilidad

Tráfico a los nodos del plano de control

Google Distributed Cloud controla automáticamente el balanceo de cargas del tráfico del plano de control para los clústeres de administrador de HA. Si bien 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 de complementos

1.15 y versiones anteriores: A continuación, se muestra la asignación a las direcciones IP y los valores nodePort para el tráfico a los servicios en nodos de complementos:

  • (addonsVIP:8443) -> (NODE_IP_ADDRESSES:addonsNodePort)

Agrega esta asignación para todos los nodos del clúster de administrador, incluidos los nodos del plano de control y los nodos de complementos.

En la versión 1.16 y versiones posteriores, no es necesario configurar esta asignación para los nodos de complementos de los clústeres de administración de HA.

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 nodePort del nodo del plano de control:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)

Agrega esta asignación para todos los nodos del clúster de administrador, el nodo del plano de control y los nodos de complementos.

Tráfico a los servicios en los nodos de complementos

1.15 y versiones anteriores: A continuación, se muestra la asignación a las direcciones IP y los valores nodePort de los servicios que se ejecutan en nodos de complementos:

  • (addonsVIP:8443) -> (NODE_IP_ADDRESSES:addonsNodePort)

Agrega esta asignación para todos los nodos del clúster de administrador, el nodo del plano de control y los nodos de complementos.

En la versión 1.16 y versiones posteriores, no necesitas configurar esta asignación para los nodos de complementos de los clústeres de administrador sin HA.

Clúster de usuarios de CP V2

Tráfico del plano de control

Google Distributed Cloud controla automáticamente el balanceo de cargas del tráfico del plano de control para los clústeres de usuarios 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 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 nodos 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 el VIP de entrada del clúster de usuarios 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, la red interna de Kubernetes se hace cargo y la enruta al Pod de destino.

Clúster de usuarios de Kubeception

Tráfico del plano de control

A continuación, se muestra la asignación a las direcciones IP y los valores 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 del clúster de administrador como de 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 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 usuarios. Con los clústeres de usuarios 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.

Próximos pasos