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.
Defina quais Pods usarão o AWS Fargate quando em execução
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).
Antes de agendar Pods no Fargate no cluster, você deve definir pelo menos um perfil do Fargate que especifique quais Pods usam o Fargate quando iniciados.
Como administrador, é possível usar um perfil do Fargate para declarar quais Pods devem ser executados no Fargate. É possível fazer isso por meio dos seletores de perfil. É possível adicionar até cinco seletores a cada perfil. Cada seletor deve conter um namespace. O seletor também pode incluir rótulos. O campo de rótulo consiste em vários pares de chave-valor opcionais. Os pods que correspondem aos seletores são programados no Fargate. Os pods são correspondidos usando um namespace e os rótulos que são especificados no seletor. Se um seletor de namespace for definido sem rótulos, o Amazon EKS tenta agendar todos os Pods que são executados nesse namespace para Fargate usando o perfil. Se um Pod a ser agendado corresponder a qualquer um dos seletores no perfil do Fargate, esse Pod será agendado no Fargate.
Se um Pod corresponder a vários perfis do Fargate, será possível especificar qual perfil um Pod usará adicionando o seguinte rótulo de Kubernetes para a especificação do Pod: eks.amazonaws.com/fargate-profile:
. O Pod deve corresponder a um seletor nesse perfil para ser agendado no Fargate. As regras de afinidade e antiafinidade do Kubernetes não são levadas em consideração e não são necessárias com Pods do Amazon EKS Fargate.my-fargate-profile
Ao criar um perfil do Fargate, é necessário especificar uma função de execução do Pod. Essa função de execução é para os componentes do Amazon EKS que são executados na infraestrutura do Fargate usando o perfil. Ela é adicionada ao Controle de acesso com base em funçãokubelet
que está sendo executado na infraestrutura do Fargate pode ser registrado no cluster do Amazon EKS e aparede no cluster como um nó. A função de execução de Pod também fornece permissões do IAM para a infraestrutura do Fargate para permitir acesso de leitura aos repositórios de imagens do Amazon ECR. Para obter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS.
Os perfis do Fargate não podem ser alterados. No entanto, é possível criar um perfil atualizado para substituir um perfil existente e excluir o original.
nota
Qualquer Pods que esteja sendo executado usando um perfil do Fargate será interrompido e colocado como pendente quando o perfil for excluído.
Se algum perfil do Fargate em um cluster estiver no status DELETING
, será necessário aguardar até que a exclusão do perfil do Fargate seja concluída para poder criar qualquer outro perfil nesse cluster.
O Amazon EKS e o Fargate tentam distribuir Pods por todas as sub-redes definidas no perfil do Fargate. No entanto, é possível acabar com uma distribuição desigual. Se você precisar ter uma distribuição uniforme, use dois perfis do Fargate. A distribuição uniforme é importante em cenários em que você deseja implantar duas réplicas e não quer nenhum tempo de inatividade. Recomendamos que cada perfil tenha apenas uma sub-rede.
Componentes do perfil do Fargate
Os componentes a seguir estão contidos em um perfil do Fargate.
- Função de execução de pod
-
Quando o cluster cria Pods no AWS Fargate, o
kubelet
sendo executado na infraestrutura do Fargate precisa fazer as chamadas para as APIs da AWS em seu nome. Por exemplo, ele precisa fazer chamadas para extrair imagens de contêiner do Amazon ECR. A função de execução de Pod do Amazon EKS fornece as permissões do IAM para isso.Ao criar um perfil do Fargate, é necessário especificar uma função de execução de Pod para ser usada com os Pods. Essa função é adicionada ao Kubernetes Controle de acesso com base em função (RBAC)
do cluster para autorização. Isso permite que o kubelet
que está sendo executado na infraestrutura do Fargate possa ser registrado no cluster do Amazon EKS e apareça no cluster como um nó. Para obter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS. - Sub-redes
-
Os IDs das sub-redes nas quais iniciar Pods que usam esse perfil. No momento, não são atribuídos endereços IP públicos aos Pods sendo executados no Fargate. Portanto, somente sub-redes privadas (sem rota direta para um gateway da Internet) são aceitas para esse parâmetro.
- Seletores
-
Os seletores para encontrar os Pods correspondentes para usar esse perfil do Fargate. É possível especificar até cinco seletores em um perfil do Fargate. Os seletores têm os seguintes componentes:
-
Namespace: é necessário especificar um namespace para um seletor. O seletor corresponde apenas a Pods que são criados nesse namespace. No entanto, é possível criar vários seletores para visar a vários namespaces.
-
Rótulos: se preferir, você poderá especificar rótulos do Kubernetes para corresponder ao seletor. O seletor só busca correspondências com Pods que tenham todos os rótulos especificados no seletor.
-
Curingas do perfil do Fargate
Além dos caracteres permitidos pelo Kubernetes, você está autorizado a usar
e *
nos critérios do seletor para namespaces, chaves de rótulos e valores de rótulos:?
-
representa nenhum, um ou vários caracteres. Por exemplo,*
pode representarprod*
prod
eprod-metrics
. -
representa um único caractere (por exemplo,?
pode representarvalue?
valuea
). Porém, não pode representarvalue
evalue-a
, porque?
só pode representar exatamente um único caractere.
Esses caracteres curinga podem ser usados em qualquer posição e em combinação (por exemplo,
, prod*
e *dev
). Outros curingas e outras formas de correspondência de padrões, como expressões regulares, não são compatíveis.frontend*?
Se houver vários perfis correspondentes para o namespace e os rótulos na especificação do Pod, o Fargate selecionará o perfil com base na classificação alfanumérica pelo nome do perfil. Por exemplo, se ambos os perfis A (com o nome beta-workload
) e B (com o nome prod-workload
) tiverem seletores correspondentes para os Pods a serem lançados, o Fargate escolherá o perfil A (beta-workload
) para os Pods. Os Pods têm rótulos com o perfil A nos Pods (por exemplo, eks.amazonaws.com/fargate-profile=beta-workload
).
Se você quiser migrar os Pods existentes do Fargate para novos perfis que usem curingas, há duas maneiras de fazer isso:
-
Crie um novo perfil com seletores correspondentes e exclua os perfis antigos. Os pods rotulados com perfis antigos serão reprogramados para novos perfis correspondentes.
-
Se você quiser migrar workloads, mas não tiver certeza de quais rótulos do Fargate estão em cada Pod do Fargate, será possível usar o método a seguir. Crie um novo perfil com um nome que seja classificado em ordem alfanumérica primeiro entre os perfis no mesmo cluster. Em seguida, recicle os Pods do Fargate que precisem ser migrados para novos perfis.
Criar um perfil do Fargate
Esta seção descreve como criar um perfil do Fargate. Você também deve ter criado uma função de execução de Pod a ser usada para o perfil do Fargate. Para obter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS. Pods em execução no Fargate apenas compatíveis apenas em sub-redes privadas com acesso via gateway NAT a Serviços da AWS, mas não com uma rota direta para um gateway da Internet. Isso ocorre para que a VPC do seu cluster tenha sub-redes privadas disponíveis. Você pode criar um perfil com o eksctl
ou o AWS Management Console.