Configuração de Pod do Fargate - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Configuração de Pod do Fargate

Importante

O AWS Fargate com o Amazon EKS não está disponível para a AWS GovCloud (Leste dos EUA) e AWS GovCloud (Oeste dos EUA).

Esta seção descreve alguns dos detalhes exclusivos da configuração de Pod para execução de Kubernetes do Pods no AWS Fargate.

CPU e memória do Pod

Com o Kubernetes, é possível definir solicitações, uma quantidade mínima de vCPU e recursos de memória que são alocados para cada contêiner em um Pod. Os Pods são programados pelo Kubernetes para garantir que ao menos os recursos solicitados para cada Pod estejam disponíveis no recurso computacional. Para obter mais informações, consulte Gerenciar recursos de computação para contêiners, na documentação do Kubernetes.

nota

Como o Amazon EKS Fargate executa apenas um Pod por nó, não ocorre o despejo de Pods em caso de menos recursos. Todos os Pods do Amazon EKS Fargate são executados com prioridade garantida, então a CPU e a memória solicitadas devem ser iguais ao limite para todos os contêineres. Para obter mais informações, consulte Configurar a qualidade do serviço para Pods na documentação do Kubernetes.

Quando os Pods são agendados no Fargate, as reservas de vCPU e de memória dentro da especificação do Pod determinam a quantidade de CPU e de memória que deve ser provisionada para o Pod.

  • A solicitação máxima de qualquer contêiner de inicialização é usada para determinar os requisitos de vCPU e de memória da solicitação de inicialização.

  • As solicitações para todos os contêineres de longa execução são adicionadas para determinar os requisitos de vCPU e de memória da solicitação de longa duração.

  • O maior dos dois valores anteriores é escolhido para que a solicitação de vCPU e de memória use em seu Pod.

  • O Fargate adiciona 256 MB a cada reserva de memória do Pod para os componentes exigidos do Kubernetes (kubelet, kube-proxy e containerd).

O Fargate faz o arredondamento para a seguinte configuração de computação que mais se aproxima da soma das solicitações de vCPU e de memória, a fim de garantir que os Pods sempre tenham os recursos necessários para execução.

Se você não especificar uma combinação de vCPU e de memória, será usada a menor combinação (0,25 de vCPU e 0,5 GB de memória).

A tabela a seguir mostra as combinações de vCPU e de memória que estão disponíveis para Pods em execução no Fargate.

Valor de vCPU

Valor de memória

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 e 16 GB em incrementos de 1 GB

4 vCPU

Entre 8 GB e 30 GB em incrementos de 1 GB

8 vCPU

Entre 16 GB e 60 GB em incrementos de 4 GB

16 vCPU

Entre 32 GB e 120 GB em incrementos de 8 GB

A memória adicional reservada para os componentes do Kubernetes pode fazer com que uma tarefa do Fargate com mais vCPUs do que o solicitado seja provisionada. Por exemplo, uma solicitação de 1 vCPU e 8 GB de memória terá 256 MB adicionados à solicitação de memória e provisionará uma tarefa do Fargate com 2 vCPUs e 9 GB de memória, já que nenhuma tarefa com 1 vCPU e 9 GB de memória está disponível.

Não há correlação entre o tamanho do Pod em execução no Fargate e o tamanho do nó informado pelo Kubernetes com kubectl get nodes. O tamanho do nó informado geralmente é maior do que a capacidade do Pod. Você pode verificar a capacidade do Pod com o comando a seguir. Substitua default pelo namespaces do Pod e pod-name pelo nome do seu Pod.

kubectl describe pod --namespace default pod-name

Veja um exemplo de saída abaixo.

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

A anotação de CapacityProvisioned representa a capacidade imposta do Pod e determina o custo do Pod em execução no Fargate. Para obter informações sobre preços das configurações de computação, consulte Preços do AWS Fargate Fargate.

Armazenamento do Fargate

Um Pod em execução no Fargate monta automaticamente um sistema de arquivos do Amazon EFS. Você não pode usar o provisionamento dinâmico de volume persistente com nós do Fargate, mas pode usar o provisionamento estático. Para obter mais informações, consulte Driver da CSI do Amazon EFS no GitHub.

Quando provisionado, cada Pod executado no Fargate recebe um padrão de 20 GiB de armazenamento temporário. Esse tipo de armazenamento é excluído depois que um Pod é interrompido. Os novos Pods lançados no Fargate têm criptografia de volume de armazenamento temporário habilitada por padrão. O armazenamento temporário do Pod é criptografado com um algoritmo de criptografia AES-256 usando chaves gerenciadas pelo AWS Fargate.

nota

O armazenamento utilizável padrão para Pods do Amazon EKS executados no Fargate é inferior a 20 GiB. Isso ocorre porque algum espaço é usado pelo kubelet e outros módulos Kubernetes que são carregados no Pod.

É possível aumentar a quantidade total de armazenamento temporário para até 175 GiB. Para configurar o tamanho com o Kubernetes, especifique as solicitações do recurso ephemeral-storage para cada contêiner em um Pod. Quando o Kubernetes programar Pods, garanta que a soma das solicitações de recursos para cada Pod seja menor que a capacidade da tarefa do Fargate. Para obter mais informações, consulte Gerenciamento de recursos para Pods e contêiners na documentação do Kubernetes.

O Amazon EKS Fargate fornece mais armazenamento temporário do que o solicitado para fins de uso do sistema. Por exemplo, uma solicitação de 100 GiB provisionará uma tarefa do Fargate com armazenamento temporário de 115 GiB.