Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Cómo puedo solucionar los problemas al crear un perfil de AWS Fargate?
Tengo problemas al crear un perfil de AWS Fargate.
Breve descripción
Un perfil de Fargate es un mecanismo para especificar qué pods se han programado en los nodos de Fargate de un clúster de Amazon Elastic Kubernetes Service (Amazon EKS).
Un perfil de Fargate tiene selectores que se comparan con cada archivo YAML de especificación de pod de entrada. La coincidencia debe ser positiva y se deben cumplir los requisitos de AWS Fargate antes de programar el pod en los nodos de Fargate. El pod se programa con subredes y el rol de AWS Identity and Access Management (IAM) especificado en el perfil de Fargate.
Algunas de las reglas de colocación de pods son:
- Si un espacio de nombres y una configuración de etiqueta coinciden en la especificación de un pod, el pod se coloca en el perfil de Fargate que coincide con el espacio de nombres. La especificación del pod también debe coincidir con las etiquetas del selector del pod.
- Si el perfil de Fargate tiene varias configuraciones de selector de pods, se utilizará el pod programado que coincida con alguna de las configuraciones del selector de pods.
- Si la especificación de un pod coincide con varios perfiles de Fargate, el pod se programará de acuerdo con un perfil de Fargate aleatorio, a menos que se especifique la siguiente anotación en la especificación del pod: eks.amazonaws.com/fargate-profile.
- Las reglas de afinidad y antiafinidad de Kubernetes no se aplican y no son necesarias en el caso de los pods de Fargate de Amazon EKS.
Solución
A continuación se describen los problemas habituales que se presentan al crear un perfil de Fargate:
¿Cómo puedo crear un perfil de Fargate para programar pods en los nodos de Fargate?
Puede usar la consola de Amazon EKS, la Interfaz de la línea de comandos de AWS (AWS CLI), el SDK o una API para crear un perfil de Fargate.
¿Cómo puedo crear un perfil de Fargate con AWS CloudFormation?
Utilice el tipo de recurso AWS::EKS::FargateProfile CloudFormation para crear un perfil de Fargate.
¿Cómo puedo ejecutar los pods de CoreDNS solo en los nodos de Fargate?
De forma predeterminada, CoreDNS está configurado para ejecutarse en la infraestructura de Amazon EC2 en clústeres de Amazon EKS. Si quiere ejecutar los pods de CoreDNS en la informática sin servidor de Fargate en su clúster, debe reiniciar la implementación de los despliegues de CoreDNS.
Si creó el clúster con eksctl y la opción --fargate, siga las acciones que se describen en Siguientes pasos.
Nota: Se recomienda usar eksctl para crear o actualizar clústeres de EKS, ya que simplifica la administración de los recursos del clúster. Para obtener más información, consulte EKS Fargate Support en el sitio web de eksctl.
¿Cuáles son los límites predeterminados para un perfil de Fargate?
Los límites predeterminados cuando se crea un perfil de Fargate son:
- Un clúster de EKS puede tener hasta diez perfiles de Fargate.
- El perfil de Fargate puede tener hasta cinco selectores.
- El selector de perfiles de Fargate puede tener hasta cinco pares de etiquetas.
¿Qué rol de ejecución de pods debe incluirse en el perfil de Fargate?
El rol de ejecución de pods es un rol de IAM que el nodo de Fargate utiliza para realizar llamadas a la API de AWS. La política administrada AmazonEKSFargatePodExecutionRolePolicy debe estar asociada a este rol.
Kubelet en el nodo de Fargate usa este rol de IAM para comunicarse con el servidor de API. Este rol debe estar incluido en el ConfigMap aws-auth para que Kubelet pueda autenticarse con el servidor de API. Al crear un perfil de Fargate, el flujo de trabajo de Fargate agrega automáticamente este rol al ConfigMap aws-auth del clúster.
Si sus nodos de Fargate aparecen como «No preparados», asegúrese de que el rol de ejecución del pod esté incluido en el ConfigMap aws-auth.
A continuación se muestra un ejemplo de un fragmento de la sección mapRoles del ConfigMap aws-auth después de haber creado un perfil de Fargate con un rol de ejecución de pods:
mapRoles: | - groups: - system:bootstrappers - system:nodes - system:node-proxier rolearn: <Pod_execution_role_ARN> username: system:node:{{SessionName}}
Si se modifica el ConfigMap aws-auth tras la creación del perfil de Fargate, puede que se muestre esta advertencia cuando se programen pods en los nodos de Fargate:
Pod provisioning timed out (will retry) for pod: <pod_nginx>
Quiero migrar cargas de trabajo a EKS Fargate. ¿Cómo puedo crear subredes y grupos de seguridad para usarlos?
EKS Fargate solo admite subredes privadas. Esto significa que no hay una ruta predeterminada a la puerta de enlace de Internet en las tablas de enrutamiento asociadas a las subredes especificadas en su perfil de Fargate. Por lo tanto, puede tener configurados una puerta de enlace NAT o puntos de enlace de VPC para las subredes que pretende utilizar para el perfil de Fargate.
El grupo de seguridad del clúster está asociado a los nodos de Fargate de forma predeterminada. No necesita aprovisionar un grupo de seguridad específicamente para este propósito.
Si usa puntos de enlace de VPC para sus subredes, asegúrese de que el clúster tenga activado el acceso a puntos de enlace privados. El grupo de seguridad asociado a los puntos de enlace de VPC deben tener una regla de entrada que permita el tráfico del puerto HTTPS 443 desde el CIDR de la VPC del clúster.
He creado perfiles de Fargate con un aprovisionador basado en API, como Terraform o AWS CloudFormation. ¿Por qué mis perfiles de Fargate tienen el estado CREATE_FAILED?
Solo se puede crear o eliminar un perfil de Fargate cada vez. Si elimina un perfil de Fargate, no podrá crear ni eliminar otros perfiles de Fargate al mismo tiempo.
Si usa un aprovisionador basado en API, la creación o eliminación de un perfil de Fargate debe comenzar después de que todos los demás perfiles de Fargate se hayan creado o eliminado correctamente.
¿Puedo especificar los recursos (CPU, memoria) que se van a aprovisionar para los nodos de Fargate dentro del perfil de Fargate?
No puede especificar directamente la cantidad de recursos que se van a aprovisionar en el perfil de Fargate. Se recomienda especificar las solicitudes de recursos en el archivo YAML de especificación del pod de Fargate. Esto contribuye a que el flujo de trabajo de Fargate asigne al menos esa cantidad de recursos para el pod. Para obtener más información, consulte How Kubernetes applies resource requests and limits en el sitio web de Kubernetes.
Es posible que la cantidad de vCPU o memoria que vea después de ejecutar el comando kubectl describe node no coincida con la cantidad que solicitó para el pod. La cantidad de memoria y CPU que tiene el nodo depende de la capacidad disponible en el grupo de asignación de recursos de Fargate. Se le facturará en función de la cantidad solicitada en la especificación del pod. No se le facturará la cantidad de recursos visible en kubectl.
Nota: Si no especificas una combinación de vCPU y memoria, se utilizará la combinación más pequeña disponible (0,25 vCPU y 0,5 GB de memoria).

Contenido relevante
- preguntada hace un meslg...
- preguntada hace 3 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace un meslg...
- preguntada hace 2 meseslg...