Perfil de AWS Fargate - Amazon EKS

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: my-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.

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 roles (RBAC) de Kubernetes del clúster para la autorización. De este modo, el kubelet 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, prod* puede representar prod y prod-metrics.

  • ? representa un solo carácter (por ejemplo, value? puede representar valuea). Sin embargo, no puede representar value y value-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*, *dev y frontend*?). No se admiten otros comodines ni formas de coincidencia de patrones, como las expresiones regulares.

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ón en la documentación de eksctl.

eksctl
Cómo crear un perfil de Fargate con eksctl

Cree el perfil de Fargate con el siguiente comando de eksctl y reemplace cada example value con valores propios. Debe especificar un espacio de nombres. Sin embargo, la opción --labels no es obligatoria.

eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value

Puede usar ciertos comodines para las etiquetas my-kubernetes-namespace y key=value. Para obtener más información, consulte Comodines de perfil de Fargate.

AWS Management Console
Cómo crear un perfil de Fargate para un clúster con la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. Elija el clúster para el que desea crear un perfil de Fargate.

  3. Elija la pestaña Computación.

  4. En Perfiles de Fargate, elija Agregar perfil de Fargate.

  5. En la página Configurar perfil de Fargate, haga lo siguiente:

    1. En Name (Nombre), ingrese un nombre único para su perfil de Fargate; por ejemplo, my-profile.

    2. En Pod execution role (Rol de ejecución de pods), elija el rol de ejecución de Pod que se va a utilizar con el perfil de Fargate. Solo se muestran los roles de IAM con la entidad principal del servicio de eks-fargate-pods.amazonaws.com. Si no ve ningún rol, debe crear uno. Para obtener más información, consulte Rol de IAM de ejecución de Pod de Amazon EKS.

    3. Modifique las Subredes seleccionadas según sea necesario.

      nota

      Solo las subredes privadas son compatibles con los Pods que se ejecutan en Fargate.

    4. En Etiquetas, puede etiquetar su perfil de Fargate si lo desea. Estas etiquetas no se propagan a otros recursos asociados con el perfil, como los Pods.

    5. Elija Siguiente.

  6. En la página Configurar la selección de Pod, haga lo siguiente:

    1. En Namespace (Espacio de nombres), especifique un espacio de nombres que coincida con los Pods.

      • Puede usar espacios de nombres específicos para que coincidan, como kube-system o default.

      • Puede usar ciertos comodines (por ejemplo, prod-*) para que coincidan con varios espacios de nombres (por ejemplo, prod-deployment y prod-test). Para obtener más información, consulte Comodines de perfil de Fargate.

    2. (Opcional) Agregue etiquetas de Kubernetes al selector. Agréguelos específicamente al selector con el que deben coincidir los Pods del espacio de nombres especificado.

      • Puede agregar la etiqueta infrastructure: fargate al selector para que solo los Pods del espacio de nombres especificado que también tengan la etiqueta infrastructure: fargate de Kubernetes coincidan con el selector.

      • Puede usar ciertos comodines (por ejemplo, key?: value?) para que coincidan con varios espacios de nombres (por ejemplo, keya: valuea y keyb: valueb). Para obtener más información, consulte Comodines de perfil de Fargate.

    3. Elija Siguiente.

  7. En la página Revisar y crear, revise la información de su perfil de Fargate y elija Crear.

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.

eksctl

Para eliminar un perfil de Fargate con eksctl

Utilice el siguiente comando para eliminar un perfil de un clúster. Reemplace cada example value con valores propios.

eksctl delete fargateprofile --name my-profile --cluster my-cluster
AWS Management Console
Para eliminar un perfil de Fargate de un clúster con la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. En el panel de navegación izquierdo, elija Clusters (Clústeres). En la lista de clústeres, elija el clúster del que desea eliminar el perfil de Fargate.

  3. Elija la pestaña Computación.

  4. Elija el perfil de Fargate que desea eliminar y, a continuación, elija Delete (Eliminar).

  5. En la página Delete Fargate Profile (Eliminar perfil de Fargate), ingrese el nombre del perfil y, a continuación, elija Delete (Eliminar).

AWS CLI

Para eliminar un perfil de Fargate con la AWS CLI

Utilice el siguiente comando para eliminar un perfil de un clúster. Reemplace cada example value con valores propios.

aws eks delete-fargate-profile --fargate-profile-name my-profile --cluster-name my-cluster