Perfil do AWS 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.

Perfil do AWS 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).

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: my-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.

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ção (RBAC) do Kubernetes do cluster para autorização. Dessa forma, o kubelet 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 ter 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 ter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS.

Subredes

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, prod* pode representar prod e prod-metrics.

  • ? representa um único caractere (por exemplo, value? pode representar valuea). Porém, não pode representar value e value-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*, *dev e frontend*?). Outros curingas e outras formas de correspondência de padrões, como expressões regulares, não são compatíveis.

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

Este tópico 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.

Este procedimento exige a versão eksctl 0.183.0 ou superior. Você pode verificar a versão com o seguinte comando:

eksctl version

Para obter instruções sobre como instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

eksctl
Para criar um perfil do Fargate com o eksctl

Crie o perfil do Fargate com o comando eksctl a seguir, substituindo cada example value por seus próprios valores. Você precisa especificar um namespace. Mas, a opção --labels não é exigida.

eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value

É possível usar certos curingas para rótulos my-kubernetes-namespace e key=value . Para ter mais informações, consulte Curingas do perfil do Fargate.

AWS Management Console
Como criar um perfil do Fargate para um cluster com o AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. Escolha o cluster para o qual deve ser criado um perfil do Fargate.

  3. Escolha a guia Compute (Computação).

  4. Em Fargate profile (Perfil do Fargate), escolha Add Fargate profile (Adicionar perfil do Fargate).

  5. Na página Configure Fargate profile (Configurar o perfil do Fargate), faça o seguinte:

    1. Em Name (Nome), insira um nome exclusivo para o perfil do Fargate, como my-profile.

    2. Em Pod execution role (Função de execução de pod), escolha a função de execução de Pod que deve ser usada com o perfil do Fargate. Somente funções do IAM com o principal de serviço do eks-fargate-pods.amazonaws.com são mostradas. Se nenhuma função estiver listada, você deve criar uma. Para ter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS.

    3. Modifique as sub-redes selecionadas conforme necessário.

      nota

      Somente sub-redes privadas são compatíeis com Pods em execução no Fargate.

    4. Em Tags (Etiquetas), você tem a opção de etiquetar o perfil do Fargate. Essas tags não são propagadas para outros recursos associados ao perfil, como Pods.

    5. Escolha Próximo.

  6. Na página Configure Pod selection (Configurar a seleção de ), faça o seguinte:

    1. Em Namespace, insira um namespace para fazer a correspondência com Pods.

      • É possível usar namespaces específicos para a correspondência, como kube-system ou default.

      • É possível usar certos curingas (por exemplo, prod-*) para fazer a correspondência com vários namespaces (por exemplo, prod-deployment e prod-test). Para ter mais informações, consulte Curingas do perfil do Fargate.

    2. (Opcional) Adicione rótulos Kubernetes ao seletor. Adicione-os especificamente ao seletor ao qual os Pods no namespace especificado precisam corresponder.

      • É possível adicionar o rótulo infrastructure: fargate ao seletor para que somente Pods no namespace especificado que também tenham o rótulo Kubernetes do infrastructure: fargate correspondam ao seletor.

      • É possível usar certos curingas (por exemplo, key?: value?) para fazer a correspondência com vários namespaces (por exemplo, keya: valuea e keyb: valueb). Para ter mais informações, consulte Curingas do perfil do Fargate.

    3. Escolha Próximo.

  7. Na página Review and create (Revisar e criar), revise as informações do perfil do Fargate e selecione Create (Criar).

Excluir um perfil do Fargate

Este tópico descreve como excluir um perfil do Fargate.

Quando você exclui um perfil do Fargate, todos os Pods que foram agendados no Fargate com o perfil são excluídos. Se esses Pods corresponderem a outro perfil do Fargate, eles serão agendados no Fargate com esse perfil. Se eles não corresponderem mais a nenhum perfil do Fargate, eles não estão agendados para o Fargate e poderão continuar pendentes.

Somente um perfil do Fargate em um cluster pode estar no status DELETING de cada vez. Espere que um perfil do Fargate conclua a exclusão antes de excluir qualquer outro perfil desse cluster.

Você pode excluir um perfil com o eksctl, o AWS Management Console ou a AWS CLI. Selecione a guia com o nome da ferramenta que você deseja usar para excluir o perfil.

eksctl

Para excluir um perfil do Fargate com eksctl

Use o comando a seguir para excluir um perfil de um cluster. Substitua cada example value por seus próprios valores.

eksctl delete fargateprofile --name my-profile --cluster my-cluster
AWS Management Console
Como excluir um perfil do Fargate de um cluster com o AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. No painel de navegação à esquerda, escolha Clusters. Na lista de clusters, escolha o cluster do qual deseja excluir o perfil do Fargate.

  3. Escolha a guia Compute (Computação).

  4. Escolha o perfil do Fargate a ser excluído e, em seguida, escolha Delete (Excluir).

  5. Na página Delete Fargate Profile (Excluir perfil do Fargate), insira o nome do perfil e, em seguida, escolha Delete (Excluir).

AWS CLI

Para excluir um perfil do Fargate com AWS CLI

Use o comando a seguir para excluir um perfil de um cluster. Substitua cada example value por seus próprios valores.

aws eks delete-fargate-profile --fargate-profile-name my-profile --cluster-name my-cluster