Balanceo de cargas en paquetes con Seesaw

Clústeres de Anthos alojados en VMware (GKE On-Prem) puede ejecutarse en uno de tres modos de balanceo de cargas: integrado, manual o en paquetes. En este documento se muestra cómo configurar clústeres de Anthos alojados en VMware para que se ejecuten en el modo de balanceo de cargas en paquetes.

El balanceador de cargas en paquetes que proporciona clústeres de Anthos alojados en VMware es el balanceador de cargas Seesaw.

Las instrucciones que aparecen aquí están completas. Para obtener una introducción más corta al uso del balanceador de cargas de Seesaw, consulta Balanceador de cargas de Seesaw (guía de inicio rápido).

En el modo de balanceo de cargas en paquetes, clústeres de Anthos alojados en VMware 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.

En este documento, se muestra cómo configurar el balanceo de cargas en conjunto para un clúster de administrador y un clúster de usuario asociado.

Ventajas del modo de balanceo de cargas en paquetes

El modo de balanceo de cargas en paquetes proporciona estas ventajas en comparación con el modo manual:

  • Un único equipo puede estar a cargo de la creación del clúster y la configuración del balanceador de cargas. Por ejemplo, un equipo de administración de clústeres no dependería de otro equipo de herramientas de redes para adquirir, ejecutar y configurar el balanceador de cargas con anticipación.

  • Clústeres de Anthos alojados en VMware configura de manera automática las direcciones IP virtuales (VIP) en el balanceador de cargas. En el momento de la creación del clúster, clústeres de Anthos alojados en VMware configura el balanceador de cargas con VIP para el servidor de API de Kubernetes, el servicio de entrada y los complementos del clúster. A medida que los clientes crean servicios de tipo LoadBalancer, clústeres de Anthos alojados en VMware configura de forma automática las VIP del servicio en el balanceador de cargas.

  • Se reducen las dependencias entre las organizaciones, los grupos y los administradores. En particular, el grupo que administra un clúster depende en menor medida del grupo que administra la red.

Recomendamos que uses vSphere 6.7 o posterior y el Virtual Distributed Switch (VDS) 6.6 o posterior para el modo de balanceo de cargas en paquetes.

Si lo prefieres, puedes usar versiones anteriores, pero la instalación será menos segura. En las secciones restantes de este tema, se proporcionan más detalles sobre las ventajas de seguridad del uso de vSphere 6.7+ y VDS 6.6+.

Protocolo de redundancia de router virtual

Puedes ejecutar el balanceador de cargas de Seesaw en una sola VM o en el modo de alta disponibilidad (HA), que usa dos VM. En el modo de HA, el balanceador de cargas de Seesaw usa el Protocolo de redundancia de router virtual (VRRP). Las dos VM se llaman instancia principal y copia de seguridad. Cada VM de Seesaw recibe un identificador de router virtual (VRID) que elijas.

Planifica las VLAN

En este ejercicio, crearás un clúster de administrador y uno de usuario. En el modo de balanceo de cargas en paquetes, te recomendamos que tengas los clústeres en distintas VLAN.

Si el clúster de administrador está en su propia VLAN, el tráfico del plano de control es independiente del tráfico del plano de datos. Esta separación protege los planos de control del clúster de administrador y de usuario de los errores de configuración involuntarios. Estos errores pueden generar, por ejemplo, problemas como una tormenta de transmisión debido a bucles de capa 2 en la misma VLAN o a una dirección IP en conflicto que elimina la separación deseada entre el plano de datos y el plano de control.

Aprovisiona recursos de VM

Para las VM que ejecutan el balanceador de cargas de Seesaw, aprovisiona la CPU y los recursos de memoria de acuerdo con el tráfico de red que esperas encontrar.

El balanceador de cargas de Seesaw no consume mucha memoria y se puede ejecutar en VM con 1 GB de memoria. Sin embargo, el requisito de CPU aumenta a medida que aumenta la frecuencia de paquetes de red.

En la siguiente tabla, se muestran los lineamientos de almacenamiento, CPU y memoria para el aprovisionamiento de las VM de Seesaw. Debido a que la tasa de paquetes no es una medida típica del rendimiento de red, en la tabla también se muestran los lineamientos para la cantidad máxima de conexiones de red activas. En los lineamientos, también se supone un entorno en el que las VM tienen un vínculo de 10 Gbps, y que las CPU se ejecutan con una capacidad inferior al 70%.

Cuando el balanceador de cargas de Seesaw se ejecuta en modo de alta disponibilidad, usa un par (instancia principal, copia de seguridad), por lo que todo el tráfico fluye a través de una sola VM.

Como los casos de uso reales varían, estas pautas deben modificarse en función del tráfico real. Supervisa las métricas de CPU y frecuencia de paquetes para determinar los cambios necesarios.

Si necesitas cambiar la CPU y la memoria de las VM de Seesaw, consulta Actualiza un balanceador de cargas. Ten en cuenta que puedes mantener la misma versión del balanceador de cargas y cambiar la cantidad de CPU y la asignación de memoria.

En el caso de los clústeres de administrador pequeños, recomendamos 2 CPU y, en el caso de los clústeres de administrador grandes, recomendamos 4 CPU.

Storage CPU Memoria Tasa de paquetes (pps) Cantidad máxima de conexiones activas
20 GB 1 (no producción) 1 GB 250k 100
20 GB 2 3 GB 450k 300
20 GB 4 3 GB 850k 6,000
20 GB 6 3 GB 1,000k 10,000

Reserva las direcciones IP virtuales

Sin importar el modo de balanceo de cargas que elijas, debes reservar varias direcciones IP virtuales (VIP) que quieras usar para el balanceo de cargas. Estas VIP permiten que los clientes externos accedan a los servidores de la API de Kubernetes, los servicios de entrada y los servicios de complementos.

VIP del clúster de administrador

Reserva una VIP para el servidor de la API de Kubernetes del clúster de administrador. En el archivo de configuración del clúster de administrador, se llama controlPlaneVIP. Esta VIP debe estar en la misma VLAN que los nodos del clúster de administrador y las VM de Seesaw del clúster de administrador.

Reserva una VIP para los complementos en tu clúster de administrador. En el archivo de configuración del clúster de administrador, se llama addonsVIP. Esta VIP debe estar en la misma VLAN que los nodos del clúster de administrador y las VM de Seesaw del clúster de administrador.

VIP del clúster de usuario

Reserva una VIP para el servidor de la API de Kubernetes del clúster de usuario. En el archivo de configuración del clúster de usuario, se llama controlPlaneVIP. Esta VIP debe estar en la misma VLAN que los nodos del clúster de administrador y las VM de Seesaw del clúster de administrador. Esto se debe a que el servidor de la API de Kubernetes para el clúster de usuario se ejecuta en un nodo en el clúster de administrador.

Reserva una VIP para la entrada en el clúster de usuario. En el archivo de configuración del clúster de usuario, se llama ingressVIP. Esta VIP debe estar en la misma VLAN que los nodos del clúster de usuario y las VM de Seesaw del clúster de usuario.

Reserva las direcciones IP de nodo

En el modo de balanceo de cargas en paquetes, puedes especificar direcciones IP estáticas para los nodos del clúster, o estos pueden obtener sus direcciones IP de un servidor de DHCP.

Si deseas que los nodos del clúster tengan direcciones IP estáticas, reserva suficientes direcciones para los nodos del clúster de administrador y los nodos de todos los clústeres de usuario que quieras crear. Para obtener más información sobre cuántas direcciones IP de nodos se deben configurar, consulta Crea un clúster de administrador.

Reserva direcciones IP para las VM de Seesaw

A continuación, debes reservar las direcciones IP para las VM que ejecutarán los balanceadores de cargas de Seesaw.

La cantidad de direcciones que debes reservar dependerá de si deseas crear balanceadores de cargas de Seesaw con o sin HA.

Caso 1: Balanceadores de cargas de Seesaw con alta disponibilidad

Para el clúster de administrador, debes reservar dos direcciones IP destinadas a un par de VM de Seesaw. En el caso del clúster de administrador, también debes reservar una sola IP de instancia principal para el par de VM de Seesaw. Estas tres direcciones deben estar en la misma VLAN que los nodos del clúster de administrador.

Para el clúster de usuario, debes reservar dos direcciones IP destinadas a un par de VM de Seesaw. Además, reserva una sola dirección IP de instancia principal para el par de VM de Seesaw. Estas tres direcciones deben estar en la misma VLAN que los nodos del clúster de usuario.

Caso 2: Balanceadores de cargas de Seesaw sin alta disponibilidad

Para el clúster de administrador, reserva una dirección IP destinada a una VM de Seesaw. Además, en el clúster de administrador, reserva una dirección IP de instancia principal para el balanceador de cargas de Seesaw. Ambas direcciones deben estar en la misma VLAN que los nodos del clúster de administrador.

En el clúster de usuario, reserva una dirección IP para una VM de Seesaw. Reserva también una dirección IP de instancia principal para el balanceador de cargas de Seesaw. Ambas direcciones deben estar en la misma VLAN que los nodos del clúster de usuario.

Planifica los grupos de puertos

Cada una de las VM de Seesaw tiene dos interfaces de red. Para una VM principal de Seesaw, una de esas interfaces de red se configura con VIP y la otra se configura con una dirección IP tomada de un archivo de bloque de IP que proporciones. Para una VM de copia de seguridad de Seesaw, se configura una interfaz con una dirección IP que se tomó del archivo de bloque de IP y no se configura nada en la otra interfaz de red.

En el caso de una VM individual de Seesaw, las dos interfaces de red se pueden conectar al mismo grupo de puertos de vSphere o a grupos de puertos diferentes. Si los grupos de puertos son diferentes, deben estar en la misma VLAN.

En este tema, se hace referencia a dos grupos de puertos:

  • Grupo de puertos del balanceador de cargas: en una VM de Seesaw, la interfaz de red configurada con VIP de se conecta a este grupo de puertos.

  • grupo de puertos del nodo de clústeres: para una VM de Sesaw, la interfaz de red que está configurada con una dirección IP tomada de tu archivo de bloque de IP se conecta a este grupo de puertos. Los nodos del clúster también están conectados a este grupo de puertos.

El grupo de puertos del balanceador de cargas y el del nodo del clúster pueden ser el mismo. Sin embargo, recomendamos que sean independientes.

En el siguiente diagrama, se ilustra la configuración de red recomendada para el balanceo de cargas de Seesaw:

Diagrama que muestra la red del balanceador de cargas de Seesaw Nodos de clúster y VM de Seesaw en una VLAN

En el diagrama anterior, se representa un solo clúster, ya sea un clúster de administrador o un clúster de usuario. Recuerda que recomendamos que cada clúster esté en su propia VLAN.

En el diagrama, puedes ver las siguientes características de la red:

  • Hay dos VM de Seesaw, una principal y una copia de seguridad.

  • Las VM de Seesaw están en la misma VLAN que los nodos del clúster.

  • La VM de Seesaw de copia de seguridad tiene dos interfaces de red. Una interfaz se configura con una dirección IP tomada de tu archivo de bloque de IP de Seesaw. La otra interfaz no está configurada con ninguna dirección IP.

  • La VM principal de Seesaw tiene dos interfaces de red. Una interfaz se configura con una dirección IP tomada de tu archivo de bloque de IP de Seesaw. La otra interfaz está configurada con VIP.

  • Cada VM de Seesaw tiene una interfaz de red conectada al grupo de puertos del balanceador de cargas. Todas las demás interfaces de red en el diagrama están conectadas al grupo de puertos del nodo del clúster.

Todas las direcciones IP, incluidas las VIP, configuradas en las interfaces de red que se muestran en el diagrama deben ser enrutables a la VLAN.

Para un clúster de administrador, la interfaz de las VIP de la VM principal de Seesaw se configura con las siguientes direcciones IP:

  • La VIP de la VM principal de Seesaw del clúster de administrador
  • La VIP de complementos de clúster de administrador
  • La VIP del plano de control para el clúster de administrador
  • La VIP del plano de control para el clúster de usuario
  • VIP para Services de tipo LoadBalancer que se ejecutan en el clúster de administrador

Para un clúster de usuarios, la interfaz de las VIP en la VM principal de Seesaw se configura con las siguientes direcciones IP:

  • La VIP para la VM principal de Seesaw del clúster de usuario
  • La VIP de entrada del clúster de usuario
  • VIP para Services de tipo LoadBalancer que se ejecutan en el clúster de usuario

Crea archivos de bloque de IP

Por cada clúster, administrador y usuario, especifica las direcciones que elegiste para las VM de Seesaw en un archivo de bloque de IP. Este archivo de bloque de IP es para tu VM del balanceador de cargas, no para los nodos del clúster. Si deseas usar direcciones IP estáticas para los nodos del clúster, debes crear un archivo de bloque de IP independiente destinado a estas direcciones. Este es un ejemplo de un archivo de bloque de IP que especifica dos direcciones IP para VM de Seesaw:

blocks:
  - netmask: "255.255.255.0"
    gateway: "172.16.20.1"
    ips:
    - ip: "172.16.20.18"
      hostname: "seesaw-vm-1"
    - ip: "172.16.20.19"
      hostname: "seesaw-vm-2"

Completa los archivos de configuración

Prepara un archivo de configuración para tu clúster de administrador y otro archivo de configuración para el clúster de usuario.

En tu archivo de configuración de un clúster determinado, configura loadBalancer.kind como "Seesaw".

En loadBalancer, completa la sección seesaw:

loadBalancer:
  kind: Seesaw
  seesaw:
    ipBlockFilePath:
    vrid:
    masterIP:
    cpus:
    memoryMB:
    vCenter:
      networkName:
    enableHA:
    disableVRRPMAC:

Si deseas obtener información para completar la sección seesaw de un archivo de configuración del clúster, consulta loadbalancer.seesaw (clúster de administrador) o loadbalancer.seesaw (clúster de usuario)

Habilita el aprendizaje de MAC o el modo promiscuo (solo con alta disponibilidad)

Si configuras un balanceador de cargas de Seesaw sin alta disponibilidad, puedes omitir esta sección.

Si configuraste loadBalancer.seesaw.disableVRRPMAC como verdadero, puedes omitir esta sección.

Si configuras un balanceador de cargas de Seesaw con alta disponibilidad y configuraste loadBalancer.seesaw.disableVRRPMAC como false, debes habilitar alguna combinación de aprendizaje de MAC, transmisiones falsificadas y el modo promiscuo en el grupo de puertos del balanceador de cargas.

La forma de habilitar estas funciones varía según el tipo de interruptor que tengas:

Tipo de interruptorHabilitación de las funcionesImpacto en la seguridad
vSphere 7.0 VDS Para vSphere 7.0 con HA, debes establecer loadBalancer.seesaw.disableVRRPMAC como true. El aprendizaje de MAC no es compatible.
vSphere 6.7 con VDS 6.6

Habilita el aprendizaje de MAC y las transmisiones falsificadas para tu balanceador de cargas mediante la ejecución de este comando: gkectl prepare network --config [CONFIG_FILE], en el que [CONFIG_FILE] es la ruta del archivo de configuración del clúster. Necesitas el permiso dvPort group.Modify para hacer esto.

Es mínimo. Si el grupo de puertos del balanceador de cargas solo está conectado a las VM de Seesaw, puedes limitar el aprendizaje de MAC a las VM de Seesaw de confianza.

vSphere 6.5 o

vSphere 6.7 con una versión de VDS anterior a la 6.6

Habilita el modo promiscuo y las transmisiones falsificadas en el grupo de puertos del balanceador de cargas. Usa la interfaz de usuario de vSphere en la página del grupo de puertos en la pestaña Networking: Edit Settings -> Security. Todas las VM del grupo de puertos del balanceador de cargas están en modo promiscuo. Por lo tanto, todas pueden ver todo el tráfico. Si el grupo de puertos del balanceador de cargas solo está conectado a las VM de Seesaw, solo estas pueden ver todo el tráfico.
Interruptor lógico de NSX-T Habilita el aprendizaje de MAC en el interruptor lógico. vSphere no admite la creación de dos interruptores lógicos en el mismo dominio de capa 2. Por lo tanto, las VM de Seesaw y los nodos del clúster deben estar en el mismo interruptor lógico. Esto significa que el aprendizaje de MAC está habilitado para todos los nodos del clúster. Puede que un atacante logre falsificar la identidad de una MAC mediante la ejecución de Pods privilegiados en el clúster.
Interruptor estándar de vSphere Habilita el modo promiscuo y las transmisiones falsificadas en el grupo de puertos del balanceador de cargas. Usa la interfaz de usuario de vSphere en cada host de ESXI: Configure -> Virtual switches -> Standard Switch -> Edit Setting on the port group -> Security. Todas las VM del grupo de puertos del balanceador de cargas están en modo promiscuo. Por lo tanto, todas pueden ver todo el tráfico. Si el grupo de puertos del balanceador de cargas solo está conectado a las VM de Seesaw, solo estas pueden ver todo el tráfico.

Completa el archivo de configuración del clúster de administrador

Sigue las instrucciones en Crea un clúster de administrador para terminar de completar el archivo de configuración del clúster de administrador.

Ejecutar comprobaciones previas

Ejecuta comprobaciones previas en el archivo de configuración del clúster de administrador:

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Reemplaza ADMIN_CLUSTER_CONFIG por la ruta de acceso del archivo de configuración del clúster de administrador.

Sube imágenes de SO

Sube imágenes de SO al entorno de vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

Crea un balanceador de cargas para tu clúster de administrador

gkectl create loadbalancer --config [ADMIN_CLUSTER_CONFIG]

Crea el clúster de administrador

Sigue las instrucciones en Crea un clúster de administrador a fin dde crear tu clúster de administrador.

Completa los archivos de configuración del clúster de usuario

Sigue las instrucciones en Crea un clúster de usuario para terminar de completar el archivo de configuración del clúster de usuario.

Ejecutar comprobaciones previas

Ejecuta comprobaciones previas en el archivo de configuración del clúster de usuario:

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Reemplaza lo siguiente:

  • ADMIN_CLUSTERE_KUBECONFIG: la ruta de acceso al archivo kubeconfig del clúster de administrador

  • USER_CLUSTER_CONFIG es la ruta de acceso del archivo de configuración del clúster de usuario.

Sube imágenes de SO

Sube imágenes de SO al entorno de vSphere:

gkectl prepare --config USER_CLUSTER_CONFIG

Cree un balanceador de cargas para tu clúster de usuario

Crea un balanceador de cargas para tu clúster de usuario

gkectl create loadbalancer --config USER_CLUSTER_CONFIG

Crea tu clúster de usuario

Sigue las instrucciones en Crea un clúster de usuario a fin de crearlo.

Prueba de rendimiento y carga

La capacidad de procesamiento de descarga de la aplicación se escala de forma lineal con la cantidad de backends. Esto se debe a que los backends envían respuestas directamente a los clientes mediante el retorno directo del servidor y omiten el balanceador de cargas.

En cambio, la capacidad de procesamiento de carga de la aplicación está limitada por la capacidad de la VM de Seesaw que realiza el balanceo de cargas.

La cantidad de CPU y memoria que necesitan las aplicaciones varía, por lo que es fundamental realizar una prueba de carga antes de comenzar a entregar a una gran cantidad de clientes.

Las pruebas indican que una sola VM de Seesaw con 6 CPU y 3 GB de memoria puede manejar 10 GB/s (velocidad de línea) de tráfico de carga con 10,000 conexiones de TCP simultáneas. Sin embargo, es importante que ejecutes tu propia prueba de carga si planeas admitir una gran cantidad de conexiones de TCP simultáneas.

Límites de escalamiento

En el balanceo de cargas en paquetes, existen límites para el escalamiento del clúster. Existe un límite en la cantidad de nodos del clúster y en la cantidad de objetos Service que se pueden configurar en el balanceador de cargas. También existe un límite para las verificaciones de estado. La cantidad de verificaciones de estado depende de la cantidad de nodos y de objetos Service.

A partir de la versión 1.3.1, la cantidad de verificaciones de estado depende de la cantidad de nodos y de objetos Service locales de tráfico. Un Service local de tráfico es un objeto Service en el que externalTrafficPolicy está configurada como "Local".

Versión 1.3.0Versión 1.3.1 y posteriores
Cantidad máxima de objetos Service (S)100500
Cantidad máxima de nodos (N)100100
Cantidad máxima de verificaciones de estado S * N <= 10KN + L x N <= 10,000 (L es la cantidad de objetos Service locales de tráfico)

Ejemplo: Supongamos que tienes 100 nodos y 99 objetos Service locales de tráfico en la versión 1.3.1. Por lo tanto, la cantidad de verificaciones de estado será de 100 + 99 x 100 = 10,000, que se encuentra dentro del límite de 10,000.

Actualiza el balanceador de cargas de un clúster

Cuando actualizas un clúster, el balanceador de cargas se actualiza de forma automática. No es necesario ejecutar un comando separado para actualizar el balanceador de cargas.

Si lo deseas, puedes actualizar las CPU o la memoria de las VM de Seesaw sin realizar una actualización completa. Primero, edita los valores cpus y memoryMB en el archivo de configuración del clúster. Por ejemplo:

apiVersion: v1
bundlePath:
loadBalancer:
  kind: Seesaw
  seesaw:
    cpus: 3
    memoryMB: 3072

Luego, para actualizar el balanceador de cargas de un clúster de administrador, haz lo siguiente:

gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config ADMIN_CLUSTER_CONFIG --admin-cluster
Para actualizar el balanceador de cargas de un clúster de usuario, haz lo siguiente:
gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

Reemplaza lo siguiente:

  • ADMIN_CLUSTER_KUBECONFIG: la ruta de acceso al archivo kubeconfig del clúster de administrador

  • ADMIN_CLUSTER_CONFIG: la ruta de acceso al archivo de configuración del clúster de administrador

  • USER_CLUSTER_CONFIG es la ruta de acceso del archivo de configuración del clúster de usuario.

Visualiza registros de Seesaw

El balanceador de cargas en paquetes de Seesaw almacena archivos de registro en las VM de Seesaw en /var/log/seesaw/. El archivo de registro más importante es seesaw_engine.INFO.

A partir de la versión 1.6, si se habilita Stackdriver, los registros también se suben a Cloud. Puedes verlos en el recurso "anthos_l4lb". Para inhabilitar la carga de registros, puedes establecer una conexión SSH a la VM y ejecutar lo siguiente:

sudo systemctl disable --now docker.fluent-bit.service

Visualiza información sobre las VM de Seesaw

Puedes obtener información sobre las VM de Seesaw de un clúster desde el recurso personalizado SeesawGroup.

Visualiza el recurso personalizado SeesawGroup de un clúster:

kubectl --kubeconfig CLUSTER_KUBECONFIG get seesawgroups -n kube-system -o yaml

Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster.

En el resultado, hay un campo isReady en el que se muestra si las VM están listas para controlar el tráfico. En el resultado, también se muestran los nombres y las direcciones IP de las VM de Seesaw y cuál de las VM es la principal:

apiVersion: seesaw.gke.io/v1alpha1
kind: SeesawGroup
metadata:
  ...
  name: seesaw-for-cluster-1
  namespace: kube-system
  ...
spec: {}
status:
  machines:
  - hostname: cluster-1-seesaw-1
    ip: 172.16.20.18
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Master
  - hostname: cluster-1-seesaw-2
    ip: 172.16.20.19
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Backup

Visualiza métricas de Seesaw

El balanceador de cargas en paquetes de Seesaw proporciona las siguientes métricas:

  • Capacidad de procesamiento por Service o nodo
  • Frecuencia de paquetes por Service o nodo
  • Conexiones activas por Service o nodo
  • Uso de memoria y CPU
  • Cantidad de pods de backend en buen estado por Service
  • Cuál VM es la principal y cuál es la copia de seguridad
  • Tiempo de actividad

A partir de la versión 1.6, esas métricas se suben a Cloud con Stackdriver. Puedes verlos en la supervisión de recursos de “anthos_l4lb”.

Puedes usar cualquier solución de supervisión y de paneles que elijas, siempre que sea compatible con el formato Prometheus.

Borrar un balanceador de cargas

Si borras un clúster que usa el balanceo de cargas en paquetes, debes borrar las VM de Seesaw de ese clúster. Para ello, borra las VM de Seesaw en la interfaz de usuario de vSphere.

Como alternativa, puedes ejecutar gkectl delete loadbalancer.

Para un clúster de administrador:

gkectl delete loadbalancer --config ADMIN_CLUSTER_CONFIG --seesaw-group-file GROUP_FILE

Para un clúster de usuario:

gkectl delete loadbalancer  --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG \
    --seesaw-group-file GROUP_FILE

Reemplaza lo siguiente:

  • ADMIN_CLUSTER_CONFIG: la ruta de acceso del archivo de configuración de tu clúster de administrador

  • USER_CLUSTER_CONFIG: la ruta del archivo de configuración de tu clúster de usuario

  • ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador

  • GROUP_FILE: la ruta del archivo del grupo de Seesaw El nombre del archivo del grupo tiene el formato
    seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml.
    Por ejemplo: seesaw-for-gke-admin-12345.yaml

Solución de problemas

Obtén una conexión SSH a una VM de Seesaw

A veces, es posible que quieras establecer una conexión SSH con una VM de Seesaw para solucionar problemas o realizar una depuración.

Obtén la clave SSH

Si ya creaste el clúster, sigue estos pasos para obtener la clave SSH:

  1. Obtén el secreto seesaw-ssh del clúster. Obtén la clave SSH del secreto y decodifícalo en Base64. Guarda la clave decodificada en un archivo temporal:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get -n  kube-system secret seesaw-ssh -o \
    jsonpath='{@.data.seesaw_ssh}' | base64 -d | base64 -d > /tmp/seesaw-ssh-key
    

    Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster.

  2. Configura los permisos adecuados para el archivo de claves:

    chmod 0600 /tmp/seesaw-ssh-key

Si aún no creaste el clúster, sigue estos pasos para obtener la clave SSH:

  1. Ubica el archivo llamado seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml.

    Se llama group file y se encuentra junto a config.yaml.

    Además, mediante gkectl create loadbalancer, se imprime la ubicación del archivo del grupo.

  2. En el archivo, obtén el valor de credentials.ssh.privateKey y decodifícalo en Base64. Guarda la clave decodificada en un archivo temporal:

    cat seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml  | grep privatekey | sed 's/    privatekey: //g' \
    | base64 -d > /tmp/seesaw-ssh-key
    
  3. Configura los permisos adecuados para el archivo de claves:

    chmod 0600 /tmp/seesaw-ssh-key
    

Ahora puedes establecer una conexión SSH con la VM de Seesaw:

ssh -i /tmp/seesaw-ssh-key ubuntu@SEESAW_IP

Reemplaza SEESAW_IP por la dirección IP de la VM de Seesaw.

Obtén instantáneas

Puedes capturar instantáneas de las VM de Seesaw mediante el uso del comando gkectl diagnose snapshot junto con la marca --scenario.

Si configuras --scenario como all o all-with-logs, se incluirán instantáneas de Seesaw junto con otras instantáneas en el resultado.

Si configuras --scenario como seesaw, solo se incluirán instantáneas de Seesaw en el resultado.

Ejemplos:

gkectl diagnose snapshot --kubeconfig ADMIN_CLUSTER_KUBECONFIG --scenario seesaw

gkectl diagnose snapshot --kubeconfig ADMIN_CLUSTER_KUBECONFIG --cluster-name CLUSTER_NAME --scenario seesaw

gkectl diagnose snapshot --seesaw-group-file GROUP_FILE --scenario seesaw

Reemplaza lo siguiente:

  • ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador

  • GROUP_FILE: la ruta de acceso del archivo del grupo para el clúster.

Problemas conocidos

Cisco ACI no funciona con el retorno directo del servidor (DSR)

Seesaw se ejecuta en modo DSR y, de forma predeterminada, no funciona en Cisco ACI debido al aprendizaje de IP del plano de datos. Para encontrar una solución alternativa, puedes usar el grupo de extremos de aplicaciones aquí.

La actualización del balanceador de cargas de Seesaw no funciona en algunos casos.

Si intentas actualizar un clúster desde la versión 1.8.0, o usas gkectl upgrade loadbalancer para actualizar algunos parámetros de tu balanceador de cargas de Seesaw en la versión 1.8.0, esto no funcionará en modo DHCP ni IPAM. Espera una corrección anunciada en una versión futura antes de realizar la actualización.