Voltar
Featued image for: One pod, one node: The architecture behind serverless Kubernetes on AWS

Um pod, um node: como funciona o Kubernetes serverless com AWS Fargate no EKS

Aprofundamento CEVIU

Aprofundamento

A lógica do Fargate no EKS começa antes do scheduler. Um Fargate profile seleciona pods por namespace e, opcionalmente, por labels, e define a subnet privada e o security group da ENI do pod. Em clusters com Fargate, um mutating admission webhook gerenciado pela AWS adiciona o nome do profile ao label do pod e troca o scheduler para o do Fargate. Isso acontece antes de o objeto ser persistido no etcd e antes de o scheduler padrão poder reivindicá-lo.

O scheduler dedicado não procura nó num pool. Ele pede capacidade nova conforme os requisitos do pod, associa o pod a um nó nomeado (para evitar um segundo ambiente em caso de retry) e só faz o bind final depois que o runtime registra o Node e ele fica ready. A rede usa três network namespaces Linux (plataforma, node e workload). A ENI do cliente fica no namespace do node, e um bridge com par veth liga ao workload. O acesso ao metadata endpoint de tarefa é bloqueado para o workload.

Na operação, há pontos práticos. Cada pod consome uma ENI e as subnets são privadas, sem IP público, então saída para internet ou serviços AWS depende de NAT gateway ou VPC endpoint. O security group precisa liberar o tráfego de gerenciamento do Kubernetes para kubectl logs e exec. Não há metadata do EC2, então o caminho é IAM roles for service accounts. DaemonSets, host networking, hostPort, operações privilegiadas e GPUs ficam fora do contrato, e o EBS não monta em pods Fargate (o EFS é o padrão suportado). O patching recicla os pods via Eviction API e respeita o PodDisruptionBudget, mas pode acabar deletando o pod no prazo agendado se a eviction não ocorrer.

Por que isso importa

Para quem opera plataforma, a leitura é que o Fargate troca gestão de nó por planejamento de pod. O custo de operação cai em patch e escala de nós, mas sobe a atenção com capacidade de IP e ENI por subnet, PDBs que deixem folga para reciclagem e réplicas com readiness probes bem ajustadas. Ferramentas que dependem de DaemonSet (agentes de observabilidade e segurança, por exemplo) exigem outra abordagem, como sidecars, nesse modelo.

Perguntas frequentes

Como o EKS decide que um pod roda no Fargate?

Pelo Fargate profile, que seleciona pods por namespace e labels opcionais. Um mutating webhook gerenciado pela AWS marca o pod com o nome do profile e define o scheduler do Fargate antes de o pod ser gravado no etcd. Todo pod no Fargate precisa casar com algum profile.

Por que cada pod do Fargate tem uma ENI própria?

Porque cada pod roda em seu ambiente dedicado, e a ENI o conecta à VPC do cliente. Assim security groups e roteamento da VPC valem direto para o pod, e os flow logs identificam a interface. Em contrapartida, é preciso planejar capacidade de ENI e subnet.

Que workloads não funcionam no Fargate no EKS?

Os que exigem controle de nó: DaemonSets, host networking, host ports, operações privilegiadas e GPUs. Também não dá para montar EBS nem usar hostPath. Para armazenamento compartilhado durável, o padrão suportado é o EFS.

Como funciona o patching dos pods no Fargate?

O EKS identifica o pod afetado, notifica o cliente e usa a Eviction API para removê-lo com graça antes de reciclar o ambiente. O PodDisruptionBudget é respeitado e a eviction é repetida se violar o budget. Se não der certo até o horário agendado, o EKS pode deletar o pod.

Fontes

Avalie este artigo:
Categoria
CEVIU DevOps
Publicado
30 de outubro de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser