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 necesitas obtener 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 F5 BIG-IP o Citrix. El modo de balanceo de cargas manual requiere que implementes más configuración que con 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 el plano de control V2 Con el plano de control V2, los nodos del plano de control de un clúster de usuario se encuentran en el 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 el plano de control 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, se reservan las direcciones IP para los nodos del plano de control y los nodos trabajadores a fin 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é todo listo para crear los clústeres, necesitarás las direcciones IP y los valores de nodePort a fin de completar los archivos de configuración del clúster de administrador, el clúster de usuario y los archivos de bloqueo de IP de los 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 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 más información sobre cuántas direcciones IP de nodo reservar, consulta Planifica las direcciones IP (Plano de control V2) y Planifica las direcciones IP (kubeception).

Configurar direcciones IP

El lugar en el que configuras las direcciones IP estáticas que reservas depende del tipo de clúster y de si el plano de control V2 está habilitado en los clústeres de usuario.

Clúster de administrador de 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 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 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 posteriores, los clústeres de administrador de alta disponibilidad nuevos no tienen nodos de complementos, por lo que no es necesario reservar direcciones IP para nodos de complementos 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 versiones 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 el plano de control 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 de 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 de 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, empaquetado o manual, debes reservar varias direcciones IP que quieras usar para las IP virtuales (VIP) para el balanceo de cargas. Estas VIP permiten que los clientes externos accedan a los servidores de la API de Kubernetes y a tu servicio de entrada en los clústeres de usuario.

Cómo configurar las VIP

Dónde se configuran las VIP depende del tipo de clúster.

Clúster de administrador de alta disponibilidad

En la siguiente tabla, se describe para qué sirve la VIP y dónde se configura para los clústeres de administrador con 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 entre las versiones:

  • En 1.16 y versiones posteriores, no es necesario configurar una VIP de complementos para los clústeres de administrador de alta disponibilidad.

  • En la versión 1.28 y en versiones posteriores, los clústeres de administrador nuevos con alta disponibilidad 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 la configuras 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 entre las versiones:

En la versión 1.16 y posteriores, no es necesario configurar una VIP de los complementos para los clústeres de administrador que no tengan alta disponibilidad.

Clúster de usuario de CP V2

En la siguiente tabla, se describe para qué son las VIP y dónde las configuras para los clústeres de usuario con el plano de control 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 los 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 nodePort valores

Dónde configuras los valores de nodePort depende de si el clúster de usuario tiene ControlPlane V2 habilitado.

Clúster de administrador de alta disponibilidad

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

nodePort Configuración
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 posteriores, no es necesario que configures un nodePort para los nodos de complementos de los clústeres de administrador de alta disponibilidad.

Clúster de administrador sin alta disponibilidad

En la siguiente tabla, se describe para qué son 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 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 los 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 de los clústeres de administrador que no tienen alta disponibilidad.

Clúster de usuario de CP V2

En la siguiente tabla, se describe para qué son las nodePorts y dónde las configuras para los clústeres de usuario con el plano de control 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
HTTPS nodePort 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 un nodePort para la VIP del plano de control porque Google Distributed Cloud controla el balanceo de cargas en los nodos del plano de control para los clústeres de usuario con el plano de control V2 habilitado.

Clúster de usuario de Kubeception

En la siguiente tabla, se describe para qué sirven los valores de 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
HTTPS nodePort 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úster de administrador y de usuario:

Clúster de administrador de alta disponibilidad

  • 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 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 alta disponibilidad

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 versiones anteriores: A continuación, se muestra la asignación de las direcciones IP y los valores de nodePort para el tráfico a los servicios en nodos complementarios:

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

Agrega esta asignación a todos los nodos del clúster de administrador, tanto los del plano de control como los del complemento.

En la versión 1.16 y posteriores, no es necesario que configures esta asignación para los nodos de complementos para los 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 del nodo del plano de control:

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

Agrega esta asignación a todos los nodos del clúster de administrador, tanto en el nodo del plano de control como en los nodos del complemento.

Tráfico a los servicios en los nodos del complemento

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

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

Agrega esta asignación a todos los nodos del clúster de administrador, tanto en el nodo del plano de control como en los nodos del complemento.

En la versión 1.16 y posteriores, no necesitas configurar esta asignación para nodos de complementos para clústeres de administrador que no tienen alta disponibilidad.

Clúster de usuario de CP V2

Tráfico del plano de control

Google Distributed Cloud administra de forma automática el balanceo de cargas del tráfico del plano de control para los clústeres de usuario que tengan habilitado el plano de control V2. 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 a todos los nodos del clúster de usuario, tanto los 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 herramientas de redes internas de Kubernetes toman el control y enrutan la solicitud 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 a todos los nodos del clúster admin, tanto para el clúster de administrador como para los 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 los 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?