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.
El modo automático de EKS automatiza las tareas rutinarias de equilibrio de carga, incluida la exposición de las aplicaciones del clúster a Internet.
AWS sugiere usar equilibradores de carga de aplicación (ALB) para atender el tráfico HTTP y HTTPS. Los equilibradores de carga de aplicación pueden dirigir las solicitudes en función del contenido de la solicitud. Para obtener más información sobre los equilibradores de carga de aplicación, consulte ¿Qué es un equilibrador de carga de aplicación?
El modo automático de EKS crea y configura equilibradores de carga de aplicación (ALB). Por ejemplo, el modo automático de EKS crea un equilibrador de carga cuando se crea un objeto de Kubernetes de Ingress
y lo configura de modo que dirija el tráfico a la carga de trabajo del clúster.
Información general
-
Cree un recurso de
IngressClassParams
y especifique los valores de configuración específicos de AWS, como el certificado que se utilizará para SSL/TLS y las subredes de la VPC. -
Cree un recurso de
IngressClass
y especifique que el modo automático de EKS será el controlador del recurso. -
Cree un recurso de
Ingress
que asocie una ruta HTTP y un puerto a una carga de trabajo de clúster. -
El modo automático de EKS creará un equilibrador de carga de aplicación que apunte a la carga de trabajo especificada en el recurso de
Ingress
, con la configuración del equilibrador de carga especificada en el recurso deIngressClassParams
.
Requisitos previos
-
El modo automático de EKS habilitado en un clúster de Amazon EKS
-
Kubectl configurado para establecer conexión con el clúster
-
Puede utilizar
kubectl apply -f <filename>
para aplicar al clúster los archivos YAML de configuración de ejemplo que aparecen a continuación.
-
nota
El modo automático de EKS requiere etiquetas de subred para identificar las subredes públicas y privadas.
Si creó el clúster con eksctl
, ya dispone de estas etiquetas.
Aprenda cómo Etiquetado de subredes para el modo automático de EKS.
Paso 1: Creación de IngressClassParams
Cree un objeto de IngressClassParams
para especificar opciones de configuración específicas de AWS para el equilibrador de carga de aplicación. Utilice la referencia que aparece a continuación para actualizar el archivo YAML de ejemplo.
Tome nota del nombre que definió para el recurso de IngressClassParams
, ya que lo necesitará en el siguiente paso.
apiVersion: eks.amazonaws.com/v1
kind: IngressClassParams
metadata:
name: alb
spec:
scheme: internet-facing
Paso 2: Creación de IngressClass
Cree una IngressClass
que haga referencia a los valores de configuración específicos de AWS establecidos en el recurso de IngressClassParams
. Anote el nombre de la IngressClass
. En este ejemplo, se asigna el nombre de alb
tanto a la IngressClass
como a los IngressClassParams
.
Utilice la anotación is-default-class
para controlar si los recursos de Ingress
deben usar esta clase de forma predeterminada.
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: alb
annotations:
# Use this annotation to set an IngressClass as Default
# If an Ingress doesn't specify a class, it will use the Default
ingressclass.kubernetes.io/is-default-class: "true"
spec:
# Configures the IngressClass to use EKS Auto Mode
controller: eks.amazonaws.com/alb
parameters:
apiGroup: eks.amazonaws.com
kind: IngressClassParams
# Use the name of the IngressClassParams set in the previous step
name: alb
Para obtener más información acerca de las opciones de configuración, consulte Referencia de IngressClassParams.
Paso 3: Creación del ingreso
Cree un recurso de Ingress
. El propósito de este recurso es asociar las rutas y los puertos del equilibrador de carga de aplicación a las cargas de trabajo del clúster.
Para obtener más información sobre la configuración de este recurso, consulte Ingreso
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: 2048-ingress
spec:
# this matches the name of IngressClass.
# this can be omitted if you have a default ingressClass in cluster: the one with ingressclass.kubernetes.io/is-default-class: "true" annotation
ingressClassName: alb
rules:
- http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: <your-service>
port:
number: 80
Paso 4: Comprobación del estado
Utilice kubectl
para encontrar el estado de Ingress
. El equilibrador de carga puede tardar unos minutos en estar disponible.
Utilice el nombre del recurso de Ingress
que definió en el paso anterior.
kubectl get ingress <ingress-name>
Una vez que el recurso esté listo, recupere el nombre de dominio del equilibrador de carga.
kubectl get ingress api-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Para ver el servicio en un navegador web, revise el puerto y la ruta especificados en el recurso de Ingress
.
Paso 5: Eliminar
Para limpiar el equilibrador de carga, utilice el siguiente comando:
kubectl delete ingress <ingress-name>
El modo automático de EKS eliminará automáticamente el equilibrador de carga asociado en la cuenta de AWS.
Referencia de IngressClassParams
La siguiente tabla es una referencia rápida de las opciones de configuración que se utilizan con mayor frecuencia.
Campo | Descripción | Ejemplo de valor |
---|---|---|
|
Define si el equilibrador de carga de aplicación es interno o está orientado a Internet |
|
|
Restringe los espacios de nombres que pueden usar esta IngressClass |
|
|
Agrupa varios ingresos para compartir un único equilibrador de carga de aplicación |
|
|
Establece el tipo de dirección IP para el equilibrador de carga de aplicación |
|
|
Lista de identificadores de subred para la implementación del equilibrador de carga de aplicación |
|
|
Etiquete los filtros para seleccionar las subredes del equilibrador de carga de aplicación |
|
|
Los ARN de los certificados SSL que se van a utilizar |
|
|
Etiquetas personalizadas para los recursos de AWS |
|
|
Atributos específicos del equilibrador de carga |
|
Consideraciones
-
No puede usar las anotaciones en una IngressClass para configurar los equilibradores de carga con el modo automático de EKS.
-
Debe actualizar el rol de IAM del clúster para permitir la propagación de etiquetas desde Kubernetes a los recursos del equilibrador de carga de AWS. Para obtener más información, consulte Etiquetas personalizadas de AWS para los recursos del modo automático de EKS.
-
Para obtener información sobre la asociación de recursos con el modo automático de EKS o con el controlador del equilibrador de carga de AWS autoadministrado, consulte Referencia para las migraciones.
-
Para obtener información sobre cómo solucionar problemas con los equilibradores de carga, consulte Solución de problemas del modo automático de EKS.
-
Para conocer más aspectos a tener en cuenta a la hora de utilizar la capacidad de equilibrio de carga del modo automático de EKS, consulte Equilibrio de carga.
Las siguientes tablas proporcionan una comparación detallada de los cambios en las configuraciones de IngressClassParams, Ingress Annotations y TargetGroupBinding para el modo automático de EKS. Estas tablas destacan las principales diferencias entre la capacidad de equilibrio de carga del modo automático de EKS y el controlador del equilibrador de carga de código abierto, incluidos los cambios en la versión de la API, las características obsoletas y la actualización de los nombres de los parámetros.
IngressClassParams
Anteriores | New | Descripción |
---|---|---|
|
|
Cambio de versión de la API |
|
|
Compatibilidad con múltiples ARN de certificados |
|
|
Se modificó el esquema de coincidencia de subredes |
|
|
Nomenclatura de atributos simplificada |
Anotaciones de ingreso
Anteriores | New | Descripción |
---|---|---|
|
No compatible |
Utilice |
|
No compatible |
Especifique grupos en IngressClass únicamente |
|
No compatible |
En su lugar, utilice WAF v2 |
|
No compatible |
En su lugar, utilice WAF v2 |
|
No compatible |
Integración de Shield desactivada |
TargetGroupBinding
Anteriores | New | Descripción |
---|---|---|
|
|
Cambio de versión de la API |
|
|
Especificación explícita del tipo de destino |
|
No compatible |
Ya no es compatible con equilibradores de carga de red sin grupos de seguridad |