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.
Configuración del enrutamiento de salida del plano de control
De forma predeterminada, Amazon EKS administra la red de salida desde el plano de control de Kubernetes hasta los recursos de la VPC. Utilice el enrutamiento de salida del plano de control para cambiar este comportamiento y administrar la ruta de la red por su cuenta Esto le da un control total sobre la forma en que el tráfico de las interfaces de red elásticas (ENI) del plano de control llega a los recursos de la VPC. Puede dirigirlo a través de sus propias puertas de enlace de NAT, firewalls o dispositivos de inspección.
Modos de enrutamiento de salida
Amazon EKS admite los siguientes modos de enrutamiento de salida del plano de control:
| Mode | Descripción |
|---|---|
|
|
Comportamiento predeterminado. Amazon EKS administra la ruta de salida desde las ENI del plano de control. No es necesario configurar puertas de enlace de NAT ni ninguna otra infraestructura de enrutamiento para el tráfico del plano de control. |
|
|
Administra la ruta de salida desde el plano de control en las subredes de VPC. Es responsable de garantizar que el plano de control pueda llegar a los puntos de conexión necesarios (como servidores de webhook, proveedores de OIDC y otros recursos). Debe proporcionar una ruta de salida, como una puerta de enlace de NAT, una instancia de NAT, una puerta de enlace de tránsito o un dispositivo de firewall. También debe configurar la tabla de enrutamiento, la ACL de red y las reglas del grupo de seguridad que permiten este tráfico. |
importante
En el modo CUSTOMER_ROUTED, es responsable de garantizar una conectividad de red adecuada desde el plano de control. Las configuraciones incorrectas en las redes de la VPC pueden provocar errores en las operaciones del plano de control. Estos errores de configuración incluyen la falta de una ruta de salida, ACL de red restrictivas o grupos de seguridad incorrectos. Las operaciones afectadas incluyen las llamadas de webhook de admisión y la autenticación de OIDC.
Requisitos previos
La VPC y las subredes deben cumplir los requisitos de red estándar de Amazon EKS. Para obtener más información, consulte Requisitos de red de Amazon EKS para VPC y subredes.
En el modo CUSTOMER_ROUTED, el servidor de la API de Kubernetes envía el tráfico orientado al cliente saliente a través de las interfaces de red entre cuentas. Amazon EKS ya crea estas interfaces en las subredes para la comunicación entre el plano de control y el nodo. Este tráfico incluye las llamadas a los webhooks de admisión y a los proveedores de OIDC. Amazon EKS no crea interfaces de red de salida independientes. Este modo cambia cómo se utilizan las interfaces existentes. Las subredes que contienen estas interfaces deben cumplir los siguientes requisitos:
-
Las subredes deben tener una ruta hacia los puntos de conexión a los que debe llegar el plano de control (como los servidores webhook y los proveedores de OIDC). En el caso de los puntos de conexión situados fuera de la VPC, esto suele implicar una ruta predeterminada a un dispositivo de salida. La ruta predeterminada es
0.0.0.0/0para IPv4 y::/0para IPv6. El dispositivo de salida puede ser una puerta de enlace de NAT, una instancia de NAT, un firewall o una puerta de enlace de tránsito a una VPC de salida centralizada. La elección del dispositivo de salida es suya, Amazon EKS solo requiere que la ruta funcione. -
Los grupos de seguridad de las interfaces de red entre cuentas deben permitir el tráfico saliente en los puertos que requieran sus cargas de trabajo (por ejemplo, el puerto 443 para los webhooks y los proveedores de OIDC).
-
Las ACL de red de las subredes deben permitir el tráfico saliente y el intervalo de puertos efímeros entrantes correspondiente para el tráfico de retorno.
En el modo CUSTOMER_ROUTED, el plano de control resuelve los nombres de host mediante la configuración de DNS de la VPC. Esto permite que el plano de control llegue a los puntos de conexión de las zonas alojadas privadas de Route 53 y al DNS en las instalaciones reenviado a través de los puntos de conexión de Route 53 Resolver.
-
El conjunto de opciones de DHCP de la VPC debe incluir
AmazonProvidedDNSen la lista de servidores de nombres de dominio. Es necesario para que el plano de control resuelva los nombres de DNS de la VPC. Si el clúster utiliza puntos de conexión de webhook externos o proveedores de OIDC con nombres de DNS públicos, el solucionador también debe resolver los nombres de host públicos. Asegúrese de que el solucionador pueda gestionar tanto la resolución de VPC como la de DNS público.
En la siguiente tabla, se resume el tráfico que el plano de control envía a través de la VPC en el modo CUSTOMER_ROUTED:
| Tráfico | Destino | Puerto | Notas |
|---|---|---|---|
|
Webhooks de admisión |
Puntos de conexión de webhook (URL definidas por el cliente) |
443 (por lo general) |
Solo si los webhooks están configurados. Sale de la VPC a través del dispositivo de salida si el punto de conexión es externo. |
|
Detección de OIDC |
URL del emisor de OIDC |
443 |
Solo si hay un proveedor de OIDC configurado. Sale de la VPC a través del dispositivo de salida si el emisor es externo. |
|
Servidores de API agregados |
Puntos de conexión del servidor de la API del cliente |
443 |
Solo si están configurados. Sale de la VPC a través del dispositivo de salida si el punto de conexión es externo. |
|
API de kubelet |
Direcciones IP del nodo de trabajo |
10250 |
Se trata del tráfico entre el plano de control y los nodos a través de la ENI del clúster, no atraviesa el dispositivo de salida. Requiere que las tablas de enrutamiento, los grupos de seguridad y las ACL de red permitan el tráfico a través de la ENI del clúster entre el plano de control y los nodos. |
nota
La configuración de salida solo afecta al tráfico que se indica en esta tabla. El tráfico del plano de control administrado de EKS (como la comunicación con etcd, Registros de CloudWatch y los servicios internos de EKS) continúa a través de la ruta de red administrada de AWS y no se ve afectado por la configuración de la VPC.
Creación de un clúster con salida enrutada por el cliente
Puede especificar el modo de salida del plano de control al crear un clúster nuevo.
ejemplo
Puede utilizar ipFamily=ipv6 para clústeres IPv6. Cuando utilice IPv6 con el modo CUSTOMER_ROUTED, asegúrese de que las subredes tengan una puerta de enlace de Internet de solo salida para el tráfico IPv6, además de una puerta de enlace de NAT para el tráfico IPv4.
ejemplo
- Consola de administración de AWS
-
-
Abra la consola de Amazon EKS
. -
Elija Add cluster (Agregar clúster) y, a continuación, elija Create (Crear).
-
En la página Redes, en Salida del plano de control, seleccione Dirigida por el cliente.
-
Complete la configuración del clúster restante y elija Crear.
-
Para AWS CloudFormation, establezca ControlPlaneEgressMode: CUSTOMER_ROUTED en ResourcesVpcConfig. La compatibilidad de Terraform con este campo estará disponible en una versión futura del proveedor de AWS
nota
El cambio a CUSTOMER_ROUTED es una operación de un solo sentido. Después de habilitar la salida dirigida por el cliente en un clúster, no podrá volver a AWS_MANAGED.
Actualización de un clúster existente
Puede cambiar el modo de salida del plano de control en un clúster existente con el comando update-cluster-config.
aws eks update-cluster-config \ --name my-cluster \ --resources-vpc-config "controlPlaneEgressMode=CUSTOMER_ROUTED" \ --region region-code
Supervise el estado de la actualización:
aws eks describe-update \ --name my-cluster \ --update-id update-id \ --region region-code
La actualización se completa cuando el estado muestra Successful. El tipo de actualización es ControlPlaneEgressUpdate. La actualización suele completarse en 10 minutos.
importante
El cambio a CUSTOMER_ROUTED es una operación de un solo sentido. Después de habilitar la salida dirigida por el cliente en un clúster, no podrá volver a AWS_MANAGED.
Antes de cambiar, confirme que la VPC cumpla los requisitos de Requisitos previos. Si el plano de control pierde la conectividad con los puntos de conexión necesarios tras la actualización, es posible que se produzcan errores en operaciones como las llamadas al webhook de admisión y la autenticación de OIDC.
Consideraciones sobre IPv6
Si ejecuta un clúster IPv6 con salida dirigida por el cliente, debe configurar las rutas de salida IPv4 e IPv6.
Al ejecutar un clúster IPv6 (ipFamily=ipv6) con salida CUSTOMER_ROUTED:
-
A las ENI del plano de control se les asignan direcciones IPv4 e IPv6.
-
Debe configurar rutas de salida IPv4 e IPv6:
-
IPv4: una ruta predeterminada (
0.0.0.0/0) al dispositivo de salida (por ejemplo, una puerta de enlace de NAT). -
IPv6: una ruta
::/0a un dispositivo de salida IPv6 (por ejemplo, una puerta de enlace de Internet solo de salida).
-
-
Los grupos de seguridad y las NACL deben permitir el tráfico en ambas versiones de IP.
-
Si el proveedor de OIDC o los puntos de conexión del webhook solo utilizan IPv4, asegúrese de que la NAT IPv4 funcione.
Consideraciones
Tenga en cuenta los siguientes puntos cuando use la salida del plano de control dirigida por el cliente:
-
Su responsabilidad: en el modo
CUSTOMER_ROUTED, es el propietario de la ruta de red desde el plano de control hasta los puntos de conexión externos. Si esa ruta se interrumpe, las operaciones del plano de control que dependen de ella (como las llamadas al webhook de admisión y la autenticación de OIDC) pueden fallar hasta que se restablezca la conectividad. -
El tráfico interno de la VPC no se ve afectado: el tráfico entre el plano de control y los nodos (por ejemplo, la API de kubelet en el puerto 10 250) a través de la ENI del clúster no depende del dispositivo de salida.
-
Modo automático de EKS: el enrutamiento de salida del plano de control funciona de la misma manera en los clústeres del modo estándar y automático, ya que la arquitectura del plano de control es idéntica.
-
Capacidades de EKS: las capacidades de EKS (como ArgoCD, ACK y KRO) se ejecutan en una infraestructura administrada de AWS independiente. Esta característica no dirige el tráfico de los controladores de las capacidades de EKS a través de la VPC.
-
Observabilidad: si habilita los registros de flujo de VPC en las subredes de la VPC o del clúster, puede observar el tráfico de salida que se dirige a través de la VPC. Esto incluye las llamadas a los puntos de conexión de webhook y OIDC. Si los registros de flujo de VPC no están habilitados, este tráfico no se registra.
Clave de condición de IAM
Amazon EKS admite la clave de condición eks:controlPlaneEgressMode. Puede utilizar esta clave en las políticas de IAM o en las políticas de control de servicios (SCP) para controlar qué modo de salida pueden especificar los intermediarios al crear o actualizar los clústeres.
La clave de condición se aplica a las siguientes acciones:
-
eks:CreateCluster -
eks:UpdateClusterConfig
Por ejemplo, la siguiente SCP deniega la creación del clúster y las actualizaciones de configuración a menos que el intermediario especifique CUSTOMER_ROUTED:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireCustomerRoutedControlPlane", "Effect": "Deny", "Action": [ "eks:CreateCluster", "eks:UpdateClusterConfig" ], "Resource": "*", "Condition": { "StringNotEquals": { "eks:controlPlaneEgressMode": "CUSTOMER_ROUTED" } } } ] }
Utilice esta política para garantizar que todos los clústeres nuevos y actualizados de la organización utilicen el modo de salida CUSTOMER_ROUTED.
Configuración del proveedor de OIDC
Si el clúster utiliza un proveedor de identidad de OIDC, el plano de control debe poder llegar al punto de conexión de detección de OIDC a través de HTTPS (puerto 443). Esto se aplica a los roles de IAM para las cuentas de servicio o a un proveedor de identidad de OIDC que asocie para la autenticación de clústeres. No hay una configuración específica de OIDC, ya que utiliza la misma ruta de salida que se configura en Requisitos previos. Para permitirlo:
-
Confirme que las subredes del plano de control tengan una ruta que cubra el punto de conexión de OIDC (normalmente, una ruta predeterminada al dispositivo de salida, como una puerta de enlace de NAT).
-
Confirme que el grupo de seguridad del clúster permita el tráfico TCP 443 saliente.
-
Confirme que las NACL de la subred permitan y el tráfico de retorno efímero entrante (puertos del 1024 al 65 535) y TCP 443 saliente.
El punto de conexión depende del proveedor:
-
Proveedor de OIDC de Amazon EKS (predeterminado):
oidc.eks.region-code.amazonaws.com -
Proveedor de OIDC personalizado: la URL del emisor que configuró.
Si se produce un error en la autenticación OIDC, consulte los pasos de solución de problemas en No se puede acceder al proveedor de OIDC.
Verificación de la conectividad
Después de configurar la salida de CUSTOMER_ROUTED, compruebe que el plano de control pueda llegar a los recursos de la VPC:
-
Compruebe el modo de salida actual: confirme que el clúster utilice el modo esperado.
aws eks describe-cluster --name my-cluster \ --query "cluster.resourcesVpcConfig.controlPlaneEgressMode" \ --region region-code -
Compruebe el estado del clúster: el estado del clúster debe ser
ACTIVE.aws eks describe-cluster --name my-cluster --query "cluster.status" --region region-code -
Pruebe la conectividad del webhook: si ha configurado los webhooks de admisión, cree un recurso que active el webhook y confirme que funcione correctamente.
-
Verifique el registro del nodo: lance un nodo y confirme que se una correctamente al clúster.
kubectl get nodes -
Compruebe OIDC: si usa roles de IAM para cuentas de servicio (IRSA), verifique que los pods puedan asumir sus roles de IAM.
Para solucionar problemas comunes, consulte Solución de problemas de salida del plano de control.