Ayude a mejorar esta página
¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.
Perfil de AWS Fargate
importante
AWS Fargate con Amazon EKS no está disponible en AWS GovCloud (Este de EE. UU.) y AWS GovCloud (Oeste de EE. UU.).
Para poder programar Pods en Fargate en el clúster, debe definir al menos un perfil de Fargate que especifique qué Pods utiliza Fargate cuando se lanzan.
Como administrador, puede utilizar un perfil de Fargate para declarar qué Pods se ejecutan en Fargate. Puede hacerlo a través de los selectores del perfil. Puede agregar hasta cinco selectores a cada perfil. Cada selector debe contener un espacio de nombres. El selector también puede incluir etiquetas. El campo de etiqueta consta de varios pares de clave-valor opcionales. Los pods que coinciden con un selector se programan en Fargate. Los pods se comparan mediante un espacio de nombres y las etiquetas que se especifican en el selector. Si se define un selector de espacio de nombres sin etiquetas, Amazon EKS intenta programar todos los Pods que se ejecutan en ese espacio de nombres en Fargate mediante el perfil. Si un Pod programado coincide con alguno de los selectores del perfil de Fargate, ese Pod se programa en Fargate.
Si un Pod coincide con varios perfiles de Fargate, puede especificar qué perfil utiliza un Pod al agregar la siguiente etiqueta de Kubernetes a la especificación del Pod: eks.amazonaws.com/fargate-profile:
. El Pod debe coincidir con un selector en ese perfil para ser programado en Fargate. Las reglas de afinidad y antiafinidad de Kubernetes no se aplican y no son necesarias con los Pods de Amazon EKS Fargate.my-fargate-profile
Cuando se crea un perfil de Fargate, se debe especificar un rol de ejecución del Pod. Este rol de ejecución es para los componentes de Amazon EKS que se ejecutan en la infraestructura de Fargate mediante el perfil. Se agrega al control de acceso basado en roleskubelet
que se ejecuta en la infraestructura de Fargate puede registrarse en su clúster de Amazon EKS y aparecer en su clúster como un nodo. El rol de ejecución de Pod también proporciona permisos de IAM a la infraestructura de Fargate para permitir el acceso de lectura a los repositorios de imágenes de Amazon ECR. Para obtener más información, consulte Rol de IAM de ejecución de Pod de Amazon EKS.
Los perfiles de Fargate no se pueden cambiar. Sin embargo, puede crear un nuevo perfil actualizado para reemplazar un perfil existente y, a continuación, eliminar el original.
nota
Los Pods que se están ejecutando con un perfil de Fargate se detienen y pasan a un estado pendiente cuando se elimina el perfil.
Si el estado de alguno de los perfiles de Fargate de un clúster es DELETING
, hay que esperar a que se borre el perfil de Fargate antes de crear otros perfiles en ese clúster.
Amazon EKS y Fargate distribuyen los Pods en cada una de las subredes definidas en el perfil de Fargate. Sin embargo, es posible que acabe con una propagación desigual. Si debe tener una propagación uniforme, utilice dos perfiles de Fargate. La propagación uniforme es importante en los escenarios en los que se desea desplegar dos réplicas y no se desea ningún tiempo de inactividad. Se recomienda que cada perfil tenga solo una subred.
Componentes de un perfil de Fargate
Un perfil de Fargate consta de los siguientes componentes.
- Rol de ejecución de pods
-
Cuando el clúster crea Pods en AWS Fargate, el
kubelet
que se ejecuta en la infraestructura de Fargate debe hacer llamadas a las API de AWS en su nombre. Por ejemplo, necesita hacer llamadas para extraer imágenes del contenedor de Amazon ECR. El rol de ejecución de Pod de Amazon EKS proporciona los permisos de IAM para esta tarea.Al crear un perfil de Fargate, debe especificar un rol de ejecución de Pod para utilizarlo con los Pods. Este rol se agrega al control de acceso basado en roles
(RBAC) de Kubernetes del clúster para su autorización. De este modo, el kubelet
que se está ejecutando en la infraestructura de Fargate puede registrarse en el clúster de Amazon EKS y aparecer en el clúster como un nodo. Para obtener más información, consulte Rol de IAM de ejecución de Pod de Amazon EKS. - Subredes
-
Los identificadores de las subredes en las que se lanzarán los Pods que utilizan este perfil. En este momento, a los Pods que se ejecutan en Fargate no se les asignan direcciones IP públicas. Por lo tanto, para este parámetro solo se aceptan subredes privadas que no tengan una ruta directa a una puerta de enlace de Internet.
- Selectores
-
Los selectores que deben coincidir para que los Pods utilicen este perfil de Fargate. Puede especificar hasta cinco selectores en un perfil Fargate. Los selectores tienen los siguientes componentes:
-
Espacio de nombres: debe especificar un espacio de nombres para un selector. El selector solo hace coincidir los Pods que se crean en este espacio de nombres. Sin embargo, puede crear varios selectores para orientar varios espacios de nombres.
-
Etiquetas: puede especificar etiquetas de Kubernetes que coincidan con el selector, si lo desea. El selector solo coincide con los Pods que tienen todas las etiquetas especificadas en el selector.
-
Comodines de perfil de Fargate
Además de los caracteres permitidos por Kubernetes, se permite utilizar
y *
en los criterios del selector para los espacios de nombres, las claves de las etiquetas y los valores de las etiquetas:?
-
representa ninguno, uno o varios caracteres. Por ejemplo,*
puede representarprod*
prod
yprod-metrics
. -
representa un solo carácter (por ejemplo,?
puede representarvalue?
valuea
). Sin embargo, no puede representarvalue
yvalue-a
, porque?
solo puede representar exactamente un carácter.
Estos caracteres comodín se pueden usar en cualquier posición y en combinación (por ejemplo,
, prod*
y *dev
). No se admiten otros comodines ni formas de coincidencia de patrones, como las expresiones regulares.frontend*?
Si hay varios perfiles que coinciden con el espacio de nombres y las etiquetas en la especificación del Pod, Fargate elige el perfil según la clasificación alfanumérica por nombre de perfil. Por ejemplo, si tanto el perfil A (con el nombre beta-workload
) como el perfil B (con el nombre prod-workload
) tienen selectores coincidentes para que los Pods se lancen, Fargate elige el perfil A (beta-workload
) para los Pods. Los Pods tienen etiquetas con el perfil A en los Pods (por ejemplo, eks.amazonaws.com/fargate-profile=beta-workload
).
Si desea migrar los Pods de Fargate existentes a los nuevos perfiles que utilizan comodines, hay dos maneras de hacerlo:
-
Cree un nuevo perfil con los selectores correspondientes y, a continuación, elimine los perfiles antiguos. Los pods etiquetados con perfiles antiguos se reprograman con nuevos perfiles coincidentes.
-
Si quiere migrar cargas de trabajo, pero no sabe con seguridad qué etiquetas de Fargate hay en cada Pod de Fargate, puede utilizar el siguiente método. Cree un nuevo perfil con un nombre que se ordene alfanuméricamente en primer lugar entre los perfiles del mismo clúster. A continuación, recicle los Pods de Fargate que se deban migrar a nuevos perfiles.
Creación de un perfil de Fargate
En este tema se explica cómo crear un perfil de Fargate. También debe haber creado un rol de ejecución de Pod para utilizarlo en su perfil de Fargate. Para obtener más información, consulte Rol de IAM de ejecución de Pod de Amazon EKS. Los Pods que se ejecutan en Fargate solo se admiten en subredes privadas con acceso de la puerta de enlace de NAT a Servicios de AWS, pero no una ruta directa a una puerta de enlace de Internet. Esto es para que la VPC de su clúster tenga subredes privadas disponibles. Puede crear un perfil con eksctl
o la AWS Management Console.
En este procedimiento, se requiere la versión 0.184.0
o posterior de eksctl
. Puede verificar la versión con el siguiente comando:
eksctl version
Para obtener instrucciones sobre cómo instalar o actualizar eksctl
, consulte Instalacióneksctl
.
Eliminación de un perfil de Fargate
En este tema se explica cómo eliminar un perfil de Fargate.
Al eliminar un perfil de Fargate, se eliminan todos los Pods que se programaron en Fargate con el perfil. Si esos Pods coinciden con otro perfil de Fargate, se programan en Fargate con ese perfil. Si ya no coinciden con ningún perfil de Fargate, significa que no están programados en Fargate y pueden permanecer como pendientes.
Solo un perfil de Fargate de un clúster puede tener el estado DELETING
a la vez. Espere a que un perfil de Fargate termine de eliminarse para poder eliminar cualquier otro perfil de ese clúster.
Puede eliminar un perfil con eksctl
, la AWS Management Console o la AWS CLI. Seleccione la pestaña con el nombre de la herramienta con la que desea eliminar el perfil.