Habilita el modo de balanceo de cargas manual

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.

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?