Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Simplifique o gerenciamento da computação com o AWS Fargate
Este tópico discute o uso do Amazon EKS para executar o Kubernetes Pods no AWS Fargate. O Fargate é uma tecnologia que fornece capacidade computacional sob demanda do tamanho certo para contêineres
É possível controlar quais Pods serão iniciados no Fargate e como serão executados com os perfis do Fargate. Os perfis do Fargate são definidos como parte do seu cluster do Amazon EKS. O Amazon EKS integra o Kubernetes ao Fargate com controladores criados pela AWS usando o modelo extensível upstream fornecido pelo Kubernetes. Esses controladores são executados como parte do ambiente de gerenciamento do Kubernetes gerenciado pelo Amazon EKS e são responsáveis por agendar Pods nativos do Kubernetes. Os controladores do Fargate incluem um novo agendador que é executado com o agendador do Kubernetes, além de vários controladores de admissão de mutação e de validação. Quando você inicia um Pod que atende aos critérios de execução no Fargate, os controladores do Fargate em execução no cluster reconhecem, atualizam e agendar o Pod no Fargate.
Este tópico descreve os diferentes componentes dos Pods que são executados no Fargate e faz considerações especiais para o uso do Fargate com o Amazon EKS.
Considerações sobre o AWS Fargate
Veja a seguir algumas considerações sobre o uso do Fargate no Amazon EKS.
-
Cada Pod executado no Fargate tem sua própria barreira de isolamento. Eles não compartilham o kernel subjacente, os recursos de CPU, os recursos de memória nem a interface de rede elástica com outro Pod.
-
Os balanceadores de carga da rede e os balanceadores de carga da aplicação (ALBs) só podem ser usados com o Fargate com destinos IP. Para ter mais informações, consulte Criar um balanceador de carga da rede e Aplicação de roteamento e tráfego HTTP com Application Load Balancers.
-
Os serviços expostos ao Fargate são executados somente no modo IP do tipo de destino e não no modo IP do nó. A maneira recomendada de verificar a conectividade de um serviço em execução em um nó gerenciado e um serviço em execução no Fargate é se conectar pelo nome de serviço.
-
Os pods devem corresponder a um perfil do Fargate no momento em que são agendados para execução no Fargate. Pods que não correspondam a um perfil do Fargate podem ficar retidos como
Pending
. Se houver um perfil do Fargate correspondente, será possível excluir os Pods pendentes criados para serem regendados no Fargate. -
Não há suporte a Deamonsets no Fargate. Se a aplicação exigir um daemon, reconfigure esse daemon para ser executado como um contêiner associado nos Pods.
-
Não há suporte a contêineres privilegiados no Fargate.
-
Os pods que são executados no Fargate não podem especificar
HostPort
ouHostNetwork
no manifesto do Pod. -
O limite flexível de
nofile
enproc
padrão é 1.024, e o limite rígido é 65.535 para Pods do Fargate. -
No momento, GPUs não estão disponíveis no Fargate.
-
Só há suporte a pods em execução no Fargate em sub-redes privadas (com acesso de gateway NAT aos serviços da AWS, mas não uma rota direta para um gateway da Internet), portanto, a VPC do cluster deve ter sub-redes privadas disponíveis. Para clusters sem acesso de saída à Internet, consulte Implementar clusters privados com acesso limitado à internet.
-
Você pode usar a opção Ajustar recursos do pod com o Vertical Pod Autoscaler para definir o tamanho correto inicial da CPU e da memória para o Pods Fargate e, em seguida, usar a opção Escalar implantações de pod com o Horizontal Pod Autoscaler para dimensionar esses Pods. Se quiser que o Vertical Pod Autoscaler reimplante automaticamente os Pods no Fargate com combinações maiores de CPU e memória, defina o modo do Vertical Pod Autoscaler como
Auto
ouRecreate
para garantir a funcionalidade correta. Para obter mais informações, consulte a documentação do Vertical Pod Autoscalerno GitHub. -
A resolução DNS e os nomes de host DNS devem estar habilitados para sua VPC. Para obter mais informações, consulte Visualizar e atualizar o suporte DNS para VPC.
-
O Fargate do Amazon EKS adiciona defesa completa para aplicações do Kubernetes isolando cada pod em uma máquina virtual (VM). Essa barreira de VM impede o acesso aos recursos baseados em host usados por outros pods, no caso de um escape de contêiner, um método comum de atacar aplicações em contêiner e obter acesso a recursos fora do contêiner.
O uso do Amazon EKS não altera suas responsabilidades no modelo de responsabilidade compartilhada. Você deve considerar cuidadosamente a configuração de controles de governança e segurança do cluster. A maneira mais segura de isolar uma aplicação é sempre executá-la em um cluster separado.
-
Os perfis do Fargate são compatíveis com a especificação de sub-redes de blocos CIDR secundários da VPC. Talvez você queira especificar um bloco CIDR secundário. Isso porque existe um número limitado de endereços IP disponíveis em uma sub-rede. Como resultado, existe também um número limitado de Pods que podem ser criados no cluster. Usando diferentes sub-redes para os Pods, você pode aumentar o número de endereços IP disponíveis. Para obter mais informações, consulte Adicionar blocos CIDR IPv4 a uma VPC.
-
O serviço de metadados de instância do Amazon EC2 (IMDS) não está disponível para Pods implantados em nós do Fargate. Se você tiver Pods implantado no Fargate que precise de credenciais do IAM, atribua-as ao seu Pods usando perfis do IAM para contas de serviço. Se os Pods precisarem de acesso a outras informações disponíveis por meio do IMDS, você deve fazer a codificação rígida dessas informações na especificação do Pod. Isso inclui a região AWS ou a zona de disponibilidade na qual um Pod está implantado.
-
Não é possível implantar o Fargate Pods em AWS Outposts, AWS Wavelength ou AWS Local Zones.
-
O Amazon EKS deve aplicar patches nos Pods periodicamente para mantê-los seguros. Tentamos fazer atualizações de uma maneira que reduza esse impacto, mas há situações em que os Pods precisam ser excluídos quando não são despejados com êxito. Há algumas medidas que você pode tomar para minimizar a interrupção. Para ter mais informações, consulte Definir ações para AWS eventos de aplicação de patches do Fargate OS.
-
O plugin CNI do Amazon VPC para Amazon EKS
é instalado em nós do Fargate. Não é possível usar plug-ins CNI alternativos para clusters do Amazon EKS com nós do Fargate. -
Um Pod em execução no Fargate automaticamente monta um sistema de arquivos do Amazon EFS sem precisar das etapas de instalação manual do driver. Você não pode usar o provisionamento dinâmico de volume persistente com nós do Fargate, mas pode usar o provisionamento estático.
-
O Amazon EKS não oferece suporte ao Fargate Spot.
-
Você não pode montar volumes do Amazon EBS em Pods do Fargate.
-
Você pode executar o controlador da CSI do Amazon EBS em nós do Fargate, mas o DaemonSet do nó da CSI do Amazon EBS só pode ser executado em instâncias do Amazon EC2.
-
Depois que um trabalho do Kubernetes
é marcado como Completed
ouFailed
, o Pods que o Job cria normalmente continua a existir. Esse comportamento permite que você visualize seus registros e resultados, mas com o Fargate você incorrerá em custos se não os limpar posteriormente Job.Para excluir automaticamente o relacionado Pods após uma Job conclusão ou falha, você pode especificar um período de tempo usando o controlador de tempo de vida (TTL). O exemplo a seguir mostra a especificação
.spec.ttlSecondsAfterFinished
em seu Job manifesto.apiVersion: batch/v1 kind: Job metadata: name: busybox spec: template: spec: containers: - name: busybox image: busybox command: ["/bin/sh", "-c", "sleep 10"] restartPolicy: Never ttlSecondsAfterFinished: 60 # <-- TTL controller
Tabela de comparação do Fargate
Critérios | AWS Fargate |
---|---|
Pode ser implantado no AWS Outposts |
Não |
Pode ser implantado em uma Zona local da AWS |
Não |
Pode executar contêineres que exijam o Windows |
Não |
Pode executar contêineres que exijam o Linux |
Sim |
Pode executar workloads que exijam o chip do Inferentia |
Não |
Pode executar workloads que exijam uma GPU |
Não |
Pode executar workloads que exijam processadores ARM |
Não |
Pode executar o AWS Bottlerocket |
Não |
Pods compartilham um ambiente de runtime do kernel com outros Pods |
Não. Cada Pod tem um kernel dedicado |
Os pods compartilham recursos de CPU, memória, armazenamento e rede com outros Pods. |
Não. Cada Pod tem recursos dedicados e pode ser dimensionado independentemente para maximizar a utilização dos recursos. |
Os pods podem usar mais hardware e memória do que o solicitado nas especificações do Pod |
Não. Porém, o Pod pode ser reimplantado usando uma configuração maior de vCPU e memória. |
Deve implantar e gerenciar instâncias do Amazon EC2 |
Não |
Deve proteger, manter e corrigir o sistema operacional das instâncias do Amazon EC2 |
Não |
Pode fornecer argumentos de bootstrap na implantação de um nó, como argumentos kubelet |
Não |
Pode atribuir endereços IP a Pods de um bloco CIDR diferente do endereço IP atribuído ao nó. |
Não |
É possível executar o SSH no nó |
Não: não há nenhum sistema operacional de host de nó para SSH. |
Pode implantar sua própria AMI personalizada em nós |
Não |
Pode implantar seu próprio CNI personalizado em nós |
Não |
Você deve atualizar a AMI do nó por conta própria |
Não |
É necessário atualizar a versão Kubernetes do nó por conta própria |
Não. Você não gerencia nós. |
Pode usar o armazenamento do Amazon EBS com os Pods |
Não |
Pode usar o armazenamento do Amazon EFS com os Pods |
|
Pode usar o armazenamento do Amazon FSx para Lustre com os Pods |
Não |
Pode usar o Network Load Balancer para serviços |
Sim, ao usar a opção Criar um balanceador de carga de rede |
Pods podem ser executados em uma sub-rede pública |
Não |
Pode atribuir grupos de segurança da VPC a Pods individuais |
Sim |
Pode executar o Kubernetes DaemonSets |
Não |
Compatível com |
Não |
Disponibilidade de regiões do AWS |
|
Pode executar contêineres em hosts dedicados do Amazon EC2 |
Não |
Preços |
Custo da memória do Fargate e das configurações da CPU. Cada Pod tem seu próprio custo. Para obter mais informações, consulte Preços do AWS Fargate |