Configurar o Amazon EKS Pod Identity Agent - 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.

Configurar o Amazon EKS Pod Identity Agent

As associações do Amazon EKS Pod Identity permitem gerenciar credenciais para suas aplicações de forma semelhante a como os perfis de instância do Amazon EC2 fornecem credenciais para instâncias do Amazon EC2.

O Amazon EKS Pod Identity fornece credenciais para suas workloads com uma API EKS Auth adicional e um pod de agente executado em cada nó.

Considerações

  • IPv6

    Por padrão, o EKS Pod Identity Agent escuta em um endereço IPv4 e IPv6 para os pods para solicitar credenciais. O agente usa o endereço IP de loopback (localhost) 169.254.170.23 para IPv4 e o endereço IP de localhost [fd00:ec2::23] para IPv6.

    Se você desabilitar endereços IPv6 ou de alguma forma impedir endereços IP IPv6 do localhost, o agente não poderá iniciar. Para iniciar o agente em nós que não podem usar IPv6, siga as etapas em Desabilitar o IPv6 no EKS Pod Identity Agent para desabilitar a configuração de IPv6.

Criar o Amazon EKS Pod Identity Agent

Pré-requisitos do agente

  • Um cluster existente do Amazon EKS. Para implantar, consulte Conceitos básicos do Amazon EKS. A versão do cluster e a versão da plataforma devem ser iguais ou posteriores às versões listadas em Versões de cluster do EKS Pod Identity.

  • O perfil de nó tem permissões para o agente realizar a ação AssumeRoleForPodIdentity na API de autenticação do EKS. É possível usar Política gerenciada da AWS: AmazonEKSWorkerNodePolicy ou adicionar uma política personalizada semelhante a esta:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" } ] }

    Esta ação pode ser limitada por tags para restringir quais funções podem ser assumidas pelos pods que usam o agente.

  • Os nós podem acessar e baixar imagens do Amazon ECR. A imagem do contêiner do complemento está nos registros listados em Registros de imagem de contêiner da Amazon.

    Observe que é possível alterar a localização da imagem e fornecer imagePullSecrets para complementos do EKS nas Configurações opcionais no AWS Management Console, em --configuration-values e na AWS CLI.

  • Os nós podem acessar a API de autenticação do Amazon EKS. Para clusters privados, o endpoint eks-auth em AWS PrivateLink é obrigatório.

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 esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja configurar o complemento do EKS Pod Identity Agent.

  3. Escolha a guia Add-ons (Complementos).

  4. Escolha Obter mais complementos.

  5. Selecione a caixa no canto superior direito da caixa do complemento do EKS Pod Identity Agent e escolha Editar.

  6. Na página Configurar complementos selecionados, selecione qualquer versão na lista suspensa Versão.

  7. (Opcional) Expanda Configurações opcionais para inserir configurações adicionais. Por exemplo, é possível indicar um local alternativo para a imagem do contêiner e ImagePullSecrets. O JSON Schema com chaves aceitas é mostrado no Esquema de configuração do complemento.

    Insira as chaves e os valores de configuração em Valores de configuração.

  8. Escolha Próximo.

  9. Confirme que os pods do EKS Pod Identity Agent estão em execução no cluster.

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    Veja um exemplo de saída abaixo.

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    Agora é possível usar associações do EKS Pod Identity em seu cluster. Para ter mais informações, consulte Configurar uma conta de serviço do Kubernetes para assumir um perfil do IAM com o EKS Pod Identity.

AWS CLI
  1. Execute o seguinte comando AWS CLI. Substitua o my-cluster pelo nome do cluster.

    aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
    nota

    O EKS Pod Identity Agent não usa o service-account-role-arn para perfis do IAM para contas de serviço. Você deve fornecer ao EKS Pod Identity Agent as permissões no perfil de nó.

  2. Confirme que os pods do EKS Pod Identity Agent estão em execução no cluster.

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    Veja um exemplo de saída abaixo.

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    Agora é possível usar associações do EKS Pod Identity em seu cluster. Para ter mais informações, consulte Configurar uma conta de serviço do Kubernetes para assumir um perfil do IAM com o EKS Pod Identity.

Atualizar o Amazon EKS Pod Identity Agent

Atualize o tipo do Amazon EKS do complemento. Se você não adicionou o tipo Amazon EKS do complemento ao cluster, consulte Criar o Amazon EKS Pod Identity Agent.

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 esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja configurar o complemento do EKS Pod Identity Agent.

  3. Escolha a guia Add-ons (Complementos).

  4. Se uma nova versão do complemento estiver disponível, o EKS Pod Identity Agent mostrará um botão Atualizar versão. Selecione Atualizar versão.

  5. Na página Configurar o Amazon EKS Pod Identity Agent, selecione a nova versão na lista suspensa Versão.

  6. Selecione Save Changes (Salvar alterações).

    Pode levar alguns segundos para que a atualização seja concluída. Em seguida, confirme se a versão do complemento foi atualizada verificando o Status.

AWS CLI
  1. Veja qual versão do complemento está atualmente instalada no cluster. Substitua my-cluster pelo nome do cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --query "addon.addonVersion" --output text

    Veja um exemplo de saída abaixo.

    v1.0.0-eksbuild.1

    Você precisa criar o complemento antes de poder atualizá-lo com este procedimento.

  2. Atualize o complemento usando a AWS CLI. Se você quiser usar o AWS Management Console ou eksctl para atualizar o complemento, consulte Atualizar um complemento. Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário, e execute o comando modificado.

    • Substitua o my-cluster pelo nome do cluster.

    • Substitua v1.0.0-eksbuild.1 pela versão desejada.

    • Substitua 111122223333 pelo ID da sua conta.

    • Execute o seguinte comando:

      aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1'

      Pode levar alguns segundos para que a atualização seja concluída.

  3. Confirme se a versão do complemento foi atualizada. Substitua o my-cluster pelo nome do cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent

    Pode levar alguns segundos para que a atualização seja concluída.

    Veja um exemplo de saída abaixo.

    { "addon": { "addonName": "eks-pod-identity-agent", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.0.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/eks-pod-identity-agent/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "tags": {} } }

Configuração do EKS Pod Identity Agent

Desabilitar o IPv6 no EKS Pod Identity Agent

AWS Management Console
Desabilitar IPv6 no AWS Management Console
  1. Para desabilitar o IPv6 no EKS Pod Identity Agent, adicione a configuração a seguir às Configurações opcionais do EKS Add-on.

    1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

    2. No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja configurar o complemento.

    3. Escolha a guia Add-ons (Complementos).

    4. Selecione a caixa no canto superior direito da caixa do complemento do EKS Pod Identity Agent e escolha Editar.

    5. Na página Configurar o EKS Pod Identity Agent:

      1. Selecione a Version (Versão) que você deseja usar. Recomendamos manter a mesma versão da etapa anterior e atualizar a versão e a configuração em ações separadas.

      2. Expanda Definições de configuração opcionais.

      3. Insira a chave JSON "agent": e o valor de um objeto JSON aninhado com uma chave "additionalArgs": em Valores de configuração. O texto resultante deve ser um objeto JSON válido. Se esse par de chave e valor for o único dado na caixa de texto, coloque-o entre colchetes {}. O exemplo apresentado a seguir mostra que a política de rede está habilitada:

        { "agent": { "additionalArgs": { "-b": "169.254.170.23" } } }

        Essa configuração define o endereço IPv4 como o único usado pelo agente.

    6. Para aplicar a nova configuração substituindo os pods do EKS Pod Identity Agent, escolha Salvar alterações.

      O Amazon EKS aplica alterações nos complementos do EKS usando uma distribuição do Kubernetes DaemonSet para EKS Pod Identity Agent. É possível acompanhar o status da implantação no Histórico de atualizações do complemento no AWS Management Console e com kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system.

      kubectl rollout oferece os seguintes comandos:

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      Se a distribuição demorar muito, o Amazon EKS desfará a distribuição e uma mensagem com o tipo Atualização do complemento e o status Falha será adicionada ao Histórico de atualizações do complemento. Para investigar qualquer problema, comece com o histórico da distribuição e execute kubectl logs em um pod do EKS Pod Identity Agent para ver os logs do EKS Pod Identity Agent.

  2. Se a nova entrada no Histórico de atualizações tiver o status de Êxito, a distribuição foi concluída e o complemento está usando a nova configuração em todos os pods do EKS Pod Identity Agent.

AWS CLI
Desabilitar IPv6 no AWS CLI
  • Para desabilitar o IPv6 no EKS Pod Identity Agent, adicione a seguinte configuração aos valores de configuração do EKS Add-on.

    Execute o seguinte comando AWS CLI. Substitua my-cluster pelo nome do cluster e o ARN do perfil do IAM pelo perfil que você está usando.

    aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent \ --resolve-conflicts PRESERVE --configuration-values '{"agent":{"additionalArgs": { "-b": "169.254.170.23"}}}'

    Essa configuração define o endereço IPv4 como o único usado pelo agente.

    O Amazon EKS aplica alterações nos complementos do EKS usando uma distribuição do Kubernetes DaemonSet para EKS Pod Identity Agent. É possível acompanhar o status da implantação no Histórico de atualizações do complemento no AWS Management Console e com kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system.

    kubectl rollout oferece os seguintes comandos:

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    Se a distribuição demorar muito, o Amazon EKS desfará a distribuição e uma mensagem com o tipo Atualização do complemento e o status Falha será adicionada ao Histórico de atualizações do complemento. Para investigar qualquer problema, comece com o histórico da distribuição e execute kubectl logs em um pod do EKS Pod Identity Agent para ver os logs do EKS Pod Identity Agent.