Esta página explica o que é um perfil de instância do AWS IAM, por que motivo é importante no contexto do GKE no AWS e como atualizar o perfil de instância.
O que é um perfil de instância do AWS IAM?
Um perfil de instância é um conceito específico da AWS. Consiste num conjunto de credenciais que uma instância do Amazon EC2 usa para aceder a vários recursos da AWS. Mais especificamente, um perfil de instância é um tipo de contentor para uma função do IAM que pode ser anexada a uma instância do EC2. Um perfil de instância confere autorizações à instância do EC2, permitindo que a instância interaja com vários serviços da AWS ao abrigo das autorizações definidas. Para mais informações, consulte o artigo Usar perfis de instância.
Como são usados os perfis de instância no GKE on AWS?
Cada plano de controlo e cada conjunto de nós num cluster do GKE on AWS está associado a um perfil de instância da AWS exclusivo. Os perfis de instância no GKE no AWS têm uma dupla finalidade:
- Um perfil de instância concede ao GKE no AWS as autorizações necessárias para gerir recursos da AWS. Por exemplo, concedem ao escalador automático de clusters as autorizações necessárias para dimensionar o cluster adicionando ou removendo instâncias do EC2 com base nas exigências da carga de trabalho.
- Um perfil de instância concede às instâncias do EC2 acesso aos Google Cloud serviços.
Por exemplo, o
kubelet
, executado numa máquina AWS, requer autorizações específicas para fornecer credenciais de obtenção de imagens aocontainerd
. Estas credenciais são necessárias para aceder e extrair imagens do Artifact Registry privado da Google ou do Container Registry. No contexto do GKE on AWS, o perfil da instância do EC2 associado ao cluster está configurado para se fazer passar pelos agentes de serviço da máquina da Google (como o agente de serviço da máquina do conjunto de nós ou o agente de serviço da máquina do plano de controlo). Esta representação permite que as instâncias do EC2 do cluster se autentiquem automaticamente no Artifact Registry ou no Container Registry da Google.
Atualize o perfil da instância
A atualização do perfil da instância envolve a criação de um novo perfil da instância na AWS com autorizações específicas e, em seguida, a associação ao cluster ou ao conjunto de nós do GKE na AWS.
Para atualizar corretamente o perfil da instância do cluster ou do conjunto de nós, siga estes passos:
- Crie um perfil de instância do IAM para as suas instâncias do Amazon EC2 e adicione a função do IAM de que precisa ao perfil de instância. Para ver detalhes, consulte o artigo Usar perfis de instância.
Associe o novo perfil de instância ao cluster ou ao conjunto de nós do GKE on AWS executando o seguinte comando na CLI do Google Cloud:
Associe o perfil ao cluster
gcloud container aws clusters update CLUSTER_NAME \ --update-instance-profile \ --instance-profile-name NEW_INSTANCE_PROFILE_NAME \ ...
Substitua o seguinte:
CLUSTER_NAME
: o nome do seu clusterNEW_INSTANCE_PROFILE_NAME
: o nome do novo perfil de instância do AWS que criou
Associe o perfil ao node pool
gcloud container aws node-pools update NODE_POOL_NAME \ --update-instance-profile \ --instance-profile-name NEW_INSTANCE_PROFILE_NAME \ ...
Substitua o seguinte:
NODE_POOL_NAME
: o nome do seu node poolNEW_INSTANCE_PROFILE_NAME
: o nome do novo perfil de instância do AWS que criou
Estes comandos mostram apenas as flags relevantes para atualizar o perfil da instância, mas tem de fornecer flags adicionais para executar o comando
update
. Para mais detalhes, consulte os artigos Atualize os parâmetros do cluster da AWS ou Atualize um node pool.
O método de atualização incorreto
É importante compreender a forma incorreta de atualizar um perfil de instância, porque é um erro fácil de cometer que pode causar falhas no cluster.
A forma incorreta de atualizar um perfil de instância é modificar diretamente um perfil de instância existente através da AWS Management Console ou da AWS CLI. Essas alterações podem interromper a interação do GKE no AWS com os recursos do AWS. O GKE on AWS espera que os perfis de instância permaneçam como estavam quando foram associados pela primeira vez ao cluster ou ao conjunto de nós. Alterá-los fora das ferramentas de gestão do GKE no AWS pode criar uma incompatibilidade com o ID da função do IAM que está no perfil da instância. Esta incompatibilidade pode criar uma falha de cluster.
A abordagem descrita na secção anterior garante que as atualizações são feitas sem interromper a integração do GKE no AWS com o AWS.