View a markdown version of this page

Operaciones de puerta de enlace de Nodos híbridos de Amazon EKS - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Operaciones de puerta de enlace de Nodos híbridos de Amazon EKS

Esta página describe las operaciones del segundo día de la puerta de enlace de Nodos híbridos de Amazon EKS, incluida la alta disponibilidad, el comportamiento de conmutación por error, la supervisión, el escalado y el ciclo de vida del túnel VXLAN. Para ver las instrucciones de instalación de , consulte Introducción a la puerta de enlace de nodos híbridos de EKS.

Alta disponibilidad y conmutación por error

La puerta de enlace de Nodos híbridos utiliza un modelo de modo de espera activo y se elige a un líder basado en la concesión de Kubernetes. Dos pods de puerta de enlace se ejecutan en nodos de EC2 independientes, lo que se ve reforzado por la antiafinidad entre los pods. Ambos pods crean una interfaz VXLAN al inicio y ejecutan un conciliador de nodos que mantiene las entradas de VTEP para todos los nodos híbridos. Solo el pod líder gestiona las tablas de enrutamiento de la VPC y el CiliumVTEPConfig CRD. El pod en espera siempre está listo para reenviar el tráfico en un plazo de 3 a 5 segundos en caso de conmutación por error, ya que ya tiene un conjunto completo de entradas al túnel.

Secuencia de conmutación por error

Cuando se produce un error en la instancia de puerta de enlace activa, se produce la siguiente secuencia:

  1. El pod en espera detecta que la concesión principal ha caducado.

  2. El pod en espera adquiere la concesión y pasa a ser el nuevo líder.

  3. El nuevo líder ejecuta la secuencia de configuración del líder:

    • Actualiza las entradas de la tabla de enrutamiento de la VPC para dirigir los CIDR de los pods híbridos al ENI principal del nuevo líder.

    • Actualiza o inserta el recurso personalizado CiliumVTEPConfig con la dirección IP del nodo líder y la dirección MAC de VXLAN.

  4. El tráfico vuelve a fluir a través del nuevo líder.

Como ambos pods mantienen las interfaces de VXLAN y las entradas de VTEP en todo momento, el nuevo líder no necesita volver a crear la interfaz de VXLAN ni reprogramar las entradas del túnel durante la conmutación por error. Solo se requieren la tabla de enrutamiento de la VPC y las actualizaciones de CiliumVTEPConfig.

El tiempo de conmutación por error esperado es de aproximadamente 3 a 5 segundos. Durante la conmutación por error, se interrumpe el tráfico entre la VPC y los pods híbridos.

Recomendación de zona de disponibilidad

Distribuya los nodos de puerta de enlace en dos zonas de disponibilidad para que una falla en la zona de disponibilidad no acabe con el líder y el que está en espera. Cuando utilice el modo automático de EKS, configure su NodeClass con selectores de subred en varias zonas de disponibilidad. Para grupos de nodos administrados o nodos autoadministrados, elija nodos en diferentes AZ al etiquetarlos.

nota

El tráfico entre zonas de disponibilidad entre la puerta de enlace y otros recursos de la VPC conlleva cargos estándar de transferencia de datos de AWS entre zonas de disponibilidad.

Parámetros de elección de líderes

Los parámetros de elección de líderes predeterminados están ajustados para una conmutación por error rápida:

Parámetro Predeterminado Descripción

--leader-election-lease-duration

3s

Cuánto tiempo espera una persona que no es líder antes de intentar adquirir la concesión una vez que el líder deje de renovarla.

--leader-election-renew-deadline

2s

Cuánto tiempo intenta el líder renovar la concesión antes de darse por vencido.

--leader-election-retry-period

1s

Con qué frecuencia los candidatos vuelven a intentar adquirir la concesión.

Si se reducen estos valores, se reduce el tiempo de conmutación por error, pero aumenta el riesgo de que se produzcan falsas conmutaciones por error en las particiones de la red. Para la mayoría de las implementaciones, los valores predeterminados son adecuados. Para obtener más información, consulte Referencia de configuración de la puerta de enlace de Nodos híbridos de Amazon EKS.

Administración de tablas de enrutamiento de la VPC

La puerta de enlace administra las entradas de la tabla de enrutamiento de la VPC para que el tráfico destinado a los CIDR de los pods híbridos llegue a la instancia de puerta de enlace activa.

Cómo se administran las rutas

Cuando un pod de puerta de enlace se convierte en el líder, crea o reemplaza las rutas en cada tabla de enrutamiento de la VPC configurada. Cada ruta establece el CIDR de destino en un CIDR de pod híbrido y el objetivo en el ENI principal del líder. Si ya existe una ruta y apunta al ENI correcto, la puerta de enlace omite la actualización.

Durante la conmutación por error, el nuevo líder reemplaza las rutas existentes para que apunten a su propia ENI. Este es el mecanismo que redirige el tráfico de VPC a la nueva puerta de enlace activa.

Ejemplo de entrada en la tabla de enrutamiento

Una vez que la puerta de enlace configura las rutas, la tabla de enrutamiento de la VPC contiene entradas similares a las siguientes:

Destino Objetivo Status

10.0.0.0/16

local

active

HYBRID_POD_CIDR

eni-LEADER_ENI_ID

active

Permisos de IAM

La puerta de enlace requiere las siguientes acciones de IAM para administrar las tablas de enrutamiento:

  • ec2:DescribeRouteTables

  • ec2:CreateRoute

  • ec2:ReplaceRoute

  • ec2:DescribeInstances

Adjunte estos permisos al rol de IAM asociado al perfil de instancia, Pod Identity o la configuración de IRSA de los nodos de la puerta de enlace.

Supervisión

Puntos de enlace de estado y preparación

La puerta de enlace expone los puntos de enlace de estado y preparación del puerto 8088:

Punto de conexión Ruta Descripción

Comprobación de estado

/healthz

Devuelve HTTP 200 cuando el proceso de la puerta de enlace está en buen estado. Utilizado por la sonda de pruebas de vida de Kubernetes.

Verificación de preparación

/readyz

Devuelve HTTP 200 cuando la puerta de enlace está lista para dirigir tráfico. Utilizado por la sonda de preparación de Kubernetes.

Puede consultar estos puntos de enlace manualmente para realizar un diagnóstico mediante la ejecución de un contenedor de depuración temporal o el reenvío de puertos:

kubectl port-forward -n eks-hybrid-nodes-gateway POD_NAME 8088:8088 & curl -s http://localhost:8088/healthz curl -s http://localhost:8088/readyz

Punto de conexión de métricas

La puerta de enlace expone las métricas compatibles con Prometheus en el puerto 10080 de la ruta /metrics. Además de las métricas estándar del tiempo de ejecución del controlador, están disponibles las siguientes métricas personalizadas.

Información sobre la puerta de enlace:

Métrica Tipo Descripción

hybrid_gateway_info

Calibre

Información estática sobre la instancia de puerta de enlace. Siempre 1. Etiquetas: node_ip, node_name, vxlan_interface, vpc_cidr, pod_cidr.

Nodos híbridos:

Métrica Tipo Descripción

hybrid_gateway_hybrid_nodes_configured

Calibre

Número actual de nodos híbridos con entradas VTEP configuradas.

Operaciones de VTEP:

Métrica Tipo Descripción

hybrid_gateway_vtep_add_total

Contador

Total de operaciones de adición de VTEP correctas.

hybrid_gateway_vtep_add_errors_total

Contador

Total de operaciones de adición de VTEP fallidas.

hybrid_gateway_vtep_remove_total

Contador

Total de operaciones de eliminación de VTEP correctas.

hybrid_gateway_vtep_remove_errors_total

Contador

Total de operaciones de eliminación de VTEP fallidas.

Tablas de enrutamiento y elección de líderes:

Métrica Tipo Descripción

hybrid_gateway_leader_is_active

Calibre

1 si este pod es el líder activo, 0 si está en espera.

hybrid_gateway_leader_setup_duration_seconds

Histograma

Duración de las operaciones de configuración de líderes (tablas de enrutamiento y CiliumVTEPConfig) en segundos.

hybrid_gateway_aws_route_table_update_total

Contador

Total de operaciones de actualización de la tabla de enrutamiento de AWS correctas.

hybrid_gateway_aws_route_table_update_errors_total

Contador

Total de operaciones de actualización de la tabla de enrutamiento de AWS fallidas.

hybrid_gateway_aws_route_table_update_duration_seconds

Histograma

Duración de las operaciones de actualización de la tabla de enrutamiento de AWS en segundos.

Estadísticas de red (recopiladas bajo demanda por análisis):

Métrica Tipo Descripción

hybrid_gateway_vxlan_rx_bytes_total

Calibre

Total de bytes recibidos en la interfaz VXLAN.

hybrid_gateway_vxlan_tx_bytes_total

Calibre

Total de bytes transmitidos en la interfaz VXLAN.

hybrid_gateway_vxlan_rx_packets_total

Calibre

Total de paquetes recibidos en la interfaz VXLAN.

hybrid_gateway_vxlan_tx_packets_total

Calibre

Total de paquetes transmitidos en la interfaz VXLAN.

hybrid_gateway_vxlan_rx_dropped_total

Calibre

Total de paquetes descartados al recibirlos la interfaz VXLAN.

hybrid_gateway_vxlan_tx_dropped_total

Calibre

Total de paquetes descartados al transmitirlos la interfaz VXLAN.

hybrid_gateway_vxlan_rx_errors_total

Calibre

Total de errores de recepción en la interfaz VXLAN.

hybrid_gateway_vxlan_tx_errors_total

Calibre

Total de errores de transmisión en la interfaz VXLAN.

hybrid_gateway_vxlan_interface_up

Calibre

1 si la interfaz VXLAN está activa, 0 en caso contrario.

hybrid_gateway_vxlan_fdb_entries

Calibre

Número actual de entradas de FDB en la interfaz VXLAN.

hybrid_gateway_vxlan_route_count

Calibre

Número actual de rutas a través de la interfaz VXLAN.

hybrid_gateway_primary_nic_rx_bytes_total

Calibre

Total de bytes recibidos en la interfaz de red principal.

hybrid_gateway_primary_nic_tx_bytes_total

Calibre

Total de bytes transmitidos en la interfaz de red principal.

hybrid_gateway_primary_nic_rx_packets_total

Calibre

Total de paquetes recibidos en la interfaz de red principal.

hybrid_gateway_primary_nic_tx_packets_total

Calibre

Total de paquetes transmitidos en la interfaz de red principal.

hybrid_gateway_primary_nic_rx_dropped_total

Calibre

Total de paquetes descartados al recibirlos la NIC principal.

hybrid_gateway_primary_nic_tx_dropped_total

Calibre

Total de paquetes descartados al transmitirlos la NIC principal.

hybrid_gateway_primary_nic_rx_errors_total

Calibre

Total de errores de recepción en la NIC principal.

hybrid_gateway_primary_nic_tx_errors_total

Calibre

Total de errores de transmisión en la NIC principal.

hybrid_gateway_primary_nic_info

Calibre

Nombre de la NIC principal. Siempre 1. Etiquetas: interface_name.

Complemento de observabilidad de CloudWatch

Puede usar el complemento de observabilidad de Amazon CloudWatch para recopilar métricas y registros de la puerta de enlace. Configure el complemento para que analice el espacio de nombres de la puerta de enlace (eks-hybrid-nodes-gateway) en el puerto 10080. Para obtener el formato de configuración correcto, consulte la documentación del complemento vinculada anteriormente.

Consideraciones de escalado

La puerta de enlace de Nodos híbridos utiliza un modelo de modo activo y en espera con la elección del líder, por lo que solo un pod gestiona el tráfico en un momento dado. El escalado horizontal de la puerta de enlace (mediante el aumento del número de réplicas) puede mejorar la disponibilidad al proporcionar pods de espera adicionales que estén listos para funcionar durante la conmutación por error, pero no mejora el rendimiento, ya que el tráfico no se distribuye entre las réplicas. Para escalar el rendimiento, escale verticalmente eligiendo un tipo de instancia de EC2 con suficiente ancho de banda de la red para su volumen de tráfico.

Guía sobre tipos de instancias

El rendimiento de la puerta de enlace está limitado por el rendimiento de la red de la instancia de EC2. Tenga en cuenta los siguientes aspectos al seleccionar un tipo de instancia:

  • Ancho de banda de la red: la puerta de enlace reenvía todo el tráfico entre la VPC y los pods híbridos. Elija un tipo de instancia cuyo ancho de banda de la red cumpla con sus requisitos de tráfico máximo.

  • Paquetes por segundo (PPS): la encapsulación de VXLAN agrega una sobrecarga por paquete. Las cargas de trabajo con muchos paquetes pequeños (por ejemplo, microservicios con tasas de solicitud altas) se benefician de los tipos de instancias con límites de PPS más altos.

  • Número de nodos híbridos: cada nodo híbrido agrega un punto de conexión de túnel VXLAN por el que la puerta de enlace reenvía el tráfico. A medida que aumenta el número de nodos híbridos, aumenta el tráfico agregado a través de la puerta de enlace. Seleccione un tipo de instancia con un ancho de banda de la red suficiente para gestionar los picos de tráfico entre redes del clúster.

Tipos de instancia recomendados

Producción (de 10 a 100 nodos híbridos, tráfico moderado)

Adecuado para cargas de trabajo de producción estándar con tráfico constante entre redes.

Tipo de instancia vCPU Memoria Network Notas

c6i.xlarge

4

8 GiB

Hasta 12,5 Gbps

Buen equilibrio entre costo y rendimiento

c6in.xlarge

4

8 GiB

Hasta 30 Gbps

Optimizado para redes; recomendado para producción

c7i.xlarge

4

8 GiB

Hasta 12,5 Gbps

Optimizado para computación de última generación

m6i.xlarge

4

16 GiB

Hasta 12,5 Gbps

Adecuado para ubicar otras cargas de trabajo en nodos de puerta de enlace

Producción de alto rendimiento (más de 100 nodos híbridos, tráfico intenso)

Para entornos con requisitos importantes de ancho de banda entre redes, como cargas de trabajo con uso intensivo de datos o muchas conexiones simultáneas.

Tipo de instancia vCPU Memoria Network Notas

c6in.2xlarge

8

16 GiB

Hasta 40 Gbps

Recomendado para una producción de alto rendimiento

c5n.2xlarge

8

21 GiB

Hasta 25 Gbps.

Optimizado para redes de la generación anterior, rentable

c6in.4xlarge

16

32 GiB

Hasta 50 Gbps

Rendimiento máximo para cargas de trabajo muy pesadas

c5n.4xlarge

16

42 GiB

Hasta 25 Gbps.

Alto número de vCPU para velocidades de paquetes extremas

Supervise la utilización de la red mediante las métricas de la puerta de enlace (consulte Punto de conexión de métricas) y ajuste el tipo de instancia según sea necesario.

Ciclo de vida de túnel de VXLAN

La puerta de enlace mantiene automáticamente los túneles de VXLAN hacia los nodos híbridos a medida que se unen al clúster o salen de él.

Cómo se administran los túneles

Un controlador de nodos observa los objetos CiliumNode del clúster. El controlador se ejecuta en todos los pods de puerta de enlace (no solo en el líder), de modo que tanto el pod líder como el que está en espera tienen un estado de túnel actualizado. Cuando se produce un evento CiliumNode, el controlador comprueba si el nodo es un nodo híbrido buscando la etiqueta eks.amazonaws.com/compute-type: hybrid.

Cuando un nodo híbrido se une al clúster:

  1. El controlador detecta el nuevo objeto CiliumNode.

  2. Extrae la dirección IP interna del nodo y el CIDR del pod de la especificación CiliumNode.

  3. Programa lo siguiente en la interfaz VXLAN:

    • Una ruta para el CIDR del pod del nodo a través de la IP del nodo a través de la interfaz VXLAN.

    • Una entrada ARP estática que asigna la IP del nodo a una dirección MAC determinista.

    • Una entrada de FDB que indica al módulo de VXLAN que envíe paquetes encapsulados a la IP del nodo.

Cuando un nodo híbrido sale del clúster:

  1. El controlador detecta la eliminación de CiliumNode.

  2. Elimina la ruta, la entrada ARP y la entrada FDB de ese nodo de la interfaz VXLAN.

Este ciclo de vida es totalmente automático. No es necesario que se configure de forma manual los túneles al agregar o eliminar nodos híbridos.

Siguientes pasos