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.
Creación de una IngressClass para configurar el equilibrador de carga de aplicación
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 una carga de trabajo que desea exponer a Internet.
-
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 de IngressClassParams
.
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 una carga de trabajo
Cree una carga de trabajo que desea exponer a Internet. Puede ser cualquier recurso de Kubernetes que sirva tráfico HTTP, como una implementación o un servicio. Para este ejemplo, utilizamos un servicio HTTP simple llamado service-2048
que sirve el tráfico HTTP en el puerto 80.
Paso 2: 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. En este ejemplo, creamos un recurso IngressClassParams
denominado alb
(que utilizará en el siguiente paso) que especifica el esquema del equilibrador de carga, tal como se muestra internet-facing
en un archivo llamado alb-ingressclassparams.yaml
.
apiVersion: eks.amazonaws.com/v1 kind: IngressClassParams metadata: name: alb spec: scheme: internet-facing
Aplique la configuración al clúster:
kubectl apply -f alb-ingressclassparams.yaml
Paso 3: creación de IngressClass
Cree una IngressClass
que haga referencia a los valores de configuración específicos de AWS establecidos en el recurso IngressClassParams
en un archivo llamado alb-ingressclass.yaml
. 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.
Aplique la configuración al clúster:
kubectl apply -f alb-ingressclass.yaml
Paso 4: creación del ingreso
Cree un recurso Ingress
en un archivo llamado alb-ingress.yaml
. 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 este ejemplo, creamos un recurso Ingress
denominado 2048-ingress
que enruta el tráfico a un servicio denominado service-2048
en el puerto 80.
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: service-2048 port: number: 80
Aplique la configuración al clúster:
kubectl apply -f alb-ingress.yaml
Paso 5: 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. Por ejemplo:
kubectl get ingress 2048-ingress
Una vez que el recurso esté listo, recupere el nombre de dominio del equilibrador de carga.
kubectl get ingress 2048-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 6: Efectúe una limpieza
Para limpiar el equilibrador de carga, utilice el siguiente comando:
kubectl delete ingress 2048-ingress kubectl delete ingressclass alb kubectl delete ingressclassparams alb
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 |
|
No compatible |
Actualmente, no se admite el tipo de autenticación OIDC |
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 |