Configuración de Pod de 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.

Configuración de Pod de Fargate

importante

AWS Fargate con Amazon EKS no está disponible en AWS GovCloud (Este de EE. UU.) y AWS GovCloud (Oeste de EE. UU.).

En esta sección se describen algunos de los detalles de configuración únicos de los Pod para ejecutar Kubernetes Pods en AWS Fargate.

CPU y memoria de Pod

Con Kubernetes, puede definir las solicitudes, la cantidad mínima de vCPU y los recursos de memoria que se asignan a cada contenedor de un Pod. Los Pods están programados por Kubernetes para garantizar que al menos los recursos solicitados para cada Pod estén disponibles en el recurso de cómputo. Para obtener más información, consulte la Administración de recursos de computación para contenedores en la documentación de Kubernetes.

nota

Dado que Amazon EKS Fargate ejecuta solo un Pod por nodo, no se produce el escenario de expulsión de Pods en caso de menos recursos. Todos los Pods de Amazon EKS Fargate se ejecutan con prioridad garantizada, por lo que la CPU y la memoria solicitadas deben ser iguales al límite de todos los contenedores. A fin de obtener más información, consulte Configurar la calidad del servicio para los Pods en la documentación de Kubernetes.

Cuando los Pods están programados en Fargate, las reservas de vCPU y memoria dentro de la especificación del Pod determinan cuánta CPU y memoria se debe aprovisionar para el Pod.

  • La solicitud máxima de cualquier contenedor Init se utiliza para determinar los requisitos de vCPU y de memoria de la solicitud Init.

  • Las solicitudes para todos los contenedores de larga duración se suman para determinar los requisitos de memoria y vCPU de las solicitudes de larga duración.

  • El mayor de los dos valores anteriores se elige para la solicitud de vCPU y de memoria que se utilizará para el Pod.

  • Fargate agrega 256 MB a la reserva de memoria de cada Pod para los componentes requeridos de Kubernetes (kubelet, kube-proxy y containerd).

Fargate redondea hasta la siguiente configuración informática que más se acerque a la suma de las solicitudes de vCPU y memoria para garantizar que los Pods siempre tengan los recursos que necesitan para ejecutarse.

Si no especifica una combinación de vCPU y memoria, se utilizará la menor combinación disponible (0,25 vCPU y 0,5 GB de memoria).

La siguiente tabla muestra las combinaciones de vCPU y memoria disponibles para los Pods que se ejecutan en Fargate.

Valor de vCPU

Valor de memoria

0,25 vCPU

0,5 GB, 1 GB, 2 GB

0,5 vCPU

1 GB, 2 GB, 3 GB, 4 GB

1 vCPU

2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

2 vCPU

Entre 4 GB y 16 GB en incrementos de 1 GB

4 vCPU

Entre 8 GB y 30 GB en incrementos de 1 GB

8 vCPU

Entre 16 GB y 60 GB en incrementos de 4 GB

16 vCPU

Entre 32 GB y 120 GB en incrementos de 8 GB

La memoria adicional reservada para los componentes de Kubernetes puede generar una tarea de Fargate con más vCPU de las que se solicitaron aprovisionar. Por ejemplo, una solicitud de 1 vCPU y 8 GB de memoria tendrá 256 MB agregados a su solicitud de memoria y aprovisionará una tarea de Fargate con 2 vCPU y 9 GB de memoria, ya que no hay ninguna tarea con 1 vCPU y 9 GB de memoria disponible.

No hay correlación entre el tamaño del Pod que se ejecuta en Fargate y el tamaño del nodo informado por Kubernetes con kubectl get nodes. El tamaño del nodo informado suele ser mayor que la capacidad del Pod. Puede verificar la capacidad de los Pod con el siguiente comando. Reemplace default con espacio de nombres de Pod y pod-name con el nombre de Pod.

kubectl describe pod --namespace default pod-name

Un ejemplo de salida sería el siguiente.

[...]
annotations:
    CapacityProvisioned: 0.25vCPU 0.5GB
[...]

El comentario CapacityProvisioned representa la capacidad del Pod forzada y determina el costo del Pod que se ejecuta en Fargate. Para obtener información sobre los precios de las configuraciones informáticas, consulte Precios de AWS Fargate.

Almacenamiento de Fargate

Un Pod que se ejecuta en Fargate monta automáticamente un sistema de archivos de Amazon EFS. No se puede utilizar el aprovisionamiento dinámico de volúmenes persistentes con nodos de Fargate, pero se puede utilizar el aprovisionamiento estático. Para obtener más información, consulte Controlador de CSI de Amazon EFS en GitHub.

Cuando se aprovisiona, cada Pod que se ejecuta en Fargate recibe un almacenamiento efímero predeterminado de 20 GiB. Este tipo de almacenamiento se elimina después de un Pod se detiene. Los nuevos Pods lanzados en Fargate tienen el cifrado del volumen de almacenamiento efímero habilitado de forma predeterminada. El almacenamiento de Pod efímero se cifra con un algoritmo de cifrado AES-256 mediante claves administradas por AWS Fargate.

nota

El almacenamiento utilizable predeterminado para Pods de Amazon EKS que se ejecuta en Fargate tiene menos de 20 GiB. Esto se debe a que parte del espacio es utilizado por kubelet y otros módulos de Kubernetes que se cargan dentro del Pod.

La cantidad total de almacenamiento efímero se puede aumentar hasta un máximo de 175 GiB. Para configurar el tamaño con Kubernetes, especifique las solicitudes del recurso de ephemeral-storage para cada contenedor en un Pod. Cuando Kubernetes programa Pods, asegura que la suma de las solicitudes de recursos para cada Pod es inferior a la capacidad de la tarea de Fargate. Para obtener más información, consulte Administración de recursos para Pods y contenedores en la documentación de Kubernetes.

Amazon EKS Fargate proporciona más almacenamiento efímero del solicitado para el uso del sistema. Por ejemplo, una solicitud de 100 GiB aprovisionará una tarea de Fargate con 115 GiB de almacenamiento efímero.