Conecte um cluster Kubernetes externo ao console de gerenciamento do Amazon EKS
Você pode conectar um cluster externo do Kubernetes ao Amazon EKS usando vários métodos no processo descrito a seguir. Esse processo envolve duas etapas: registrar o cluster no Amazon EKS e instalar o agente do eks-connector
no cluster.
Importante
Você deve concluir a segunda etapa em até 3 dias após a conclusão da primeira etapa, antes que o registro expire.
Considerações
Você pode usar manifestos YAML ao instalar o agente. Como alternativa, você pode usar o Helm se registrar o cluster com o AWS Management Console ou a AWS Command Line Interface. No entanto, não é possível usar o Helm para instalar o agente caso registre o cluster com eksctl
.
Pré-requisitos
-
Certifique-se de que o perfil do agente do Amazon EKS Connector foi criado. Siga as etapas em Criar o perfil de agente do conector do Amazon EKS.
-
É necessário ter as seguintes permissões para registrar um cluster:
-
eks:RegisterCluster
-
ssm:CreateActivation
-
ssm:DeleteActivation
-
iam:PassRole
-
Etapa 1: Registrar o cluster
Para registrar um cluster no conector do Amazon EKS, você pode usar uma destas ferramentas:
AWS CLI
-
AWS A CLI deve estar instalada. Para instalá-lo ou atualizá-lo, consulte Instalar a AWS CLI.
-
Para a configuração do conector, especifique a função do IAM do agente do Amazon EKS Connector. Para ter mais informações, consulte Funções do IAM necessárias para o Amazon EKS Connector.
aws eks register-cluster \ --name my-first-registered-cluster \ --connector-config roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider="OTHER" \ --region aws-region
Veja um exemplo de saída abaixo.
{ "cluster": { "name": "my-first-registered-cluster", "arn": "arn:aws:eks:region:111122223333:cluster/my-first-registered-cluster", "createdAt": 1627669203.531, "ConnectorConfig": { "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", "activationExpiry": 1627672543.0, "provider": "OTHER", "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" }, "status": "CREATING" } }
Você usará os valores de
aws-region
,activationId
eactivationCode
na próxima etapa.
AWS Management Console
-
Abra o console do Amazon EKS
. -
Escolha Add cluster (Adicionar cluster) e selecione Register (Registrar) para abrir a página de configuração.
-
Na seção Configure cluster (Configurar cluster), preencha os seguintes campos:
-
Name (Nome) – um nome exclusivo para o cluster.
-
Provider (Fornecedor): escolha para exibir a lista suspensa de provedores de cluster do Kubernetes. Se não souber qual é o provedor específico, selecione Outro.
-
EKS Connector role (Função do EKS Connector): Selecione a função a ser usada para conectar o cluster.
-
-
Selecione Register cluster (Registrar cluster).
-
A página de visão geral do cluster é exibida. Se você quiser usar o chart do Helm, copie o comando
helm install
e prossiga na próxima etapa. Se desejar usar o manifesto YAML, escolha Baixar arquivo YAML para baixar o arquivo manifesto na unidade local.Importante
Esta é sua única oportunidade de copiar o comando
helm install
ou baixar esse arquivo. Não saia dessa página, pois o link não estará acessível, e você precisará cancelar o registro do cluster e iniciar as etapas desde o início.O comando ou o arquivo do manifesto só podem ser usados uma vez para o cluster registrado. Se você excluir recursos do cluster do Kubernetes, deve registrar novamente o cluster e obter um novo arquivo manifesto.
Prossiga para a próxima etapa para aplicar o arquivo manifesto ao cluster do Kubernetes.
eksctl
-
O
eksctl
versão0.68
ou posterior deve estar instalado. Para obter informações sobre instalação ou upgrade, consulte Comece a usar o Amazon EKS - eksctl. -
Registre o cluster informando um nome, um provedor e uma região.
eksctl register cluster --name my-cluster --provider my-provider --region region-code
Resultado do exemplo:
2021-08-19 13:47:26 [ℹ] creating IAM role "eksctl-20210819194112186040" 2021-08-19 13:47:26 [ℹ] registered cluster "<name>" successfully 2021-08-19 13:47:26 [ℹ] wrote file eks-connector.yaml to <current directory> 2021-08-19 13:47:26 [ℹ] wrote file eks-connector-clusterrole.yaml to <current directory> 2021-08-19 13:47:26 [ℹ] wrote file eks-connector-console-dashboard-full-access-group.yaml to <current directory> 2021-08-19 13:47:26 [!] note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "<aws-arn>", edit if required; read https://eksctl.io/usage/eks-connector for more info 2021-08-19 13:47:26 [ℹ] run
kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml
before expiry> to connect the clusterIsso cria arquivos no seu computador local. Esses arquivos devem ser aplicados ao cluster externo em até três dias, ou o registro expira.
-
Em um terminal que possa acessar o cluster, aplique o arquivo
eks-connector-binding.yaml
:kubectl apply -f eks-connector-binding.yaml
Etapa 2: instalar o agente do eks-connector
Para instalar o agente do eks-connector
, use uma das seguintes ferramentas:
helm
nota
Caso tenha registrado o cluster com eksctl
, use o método de manifesto YAML em vez do chart do Helm.
-
Se você usou a CLI AWS na etapa anterior, substitua
ACTIVATION_CODE
eACTIVATION_ID
no comando a seguir pelos valoresactivationId
eactivationCode
, respectivamente. Substitua oaws-region
pela região da AWS que você usou na etapa anterior. Execute o seguinte comando para instalar o agente doeks-connector
no cluster sendo resgistrado:$ helm install eks-connector \ --namespace eks-connector \ oci://public.ecr.aws/eks-connector/eks-connector-chart \ --set eks.activationCode=ACTIVATION_CODE \ --set eks.activationId=ACTIVATION_ID \ --set eks.agentRegion=aws-region
Se você usou o AWS Management Console na etapa anterior, use o comando que você copiou da etapa anterior que tem esses valores preenchidos.
-
Verifique a integridade da implantação do
eks-connector
instalado e aguarde que o status do cluster registrado no Amazon EKS sejaACTIVE
.
yaml
Faça a conexão aplicando o arquivo manifesto do Amazon EKS Connector ao cluster do Kubernetes. Para isso, você deve usar os métodos descritos anteriormente. Se o manifesto não for aplicado em até três dias, a validade do registro do Amazon EKS Connector expirará. Se a conexão do cluster expirar, o registro do cluster deve ser cancelado antes de ser conectado novamente.
-
Baixe o arquivo YAML do Amazon EKS Connector.
curl -O https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
-
Edite o arquivo YAML do Amazon EKS Connector para substituir todas as referências de
%AWS_REGION%
,%EKS_ACTIVATION_ID%
e%EKS_ACTIVATION_CODE%
poraws-region
,activationId
eactivationCode
da saída da etapa anterior.O exemplo de comando a seguir pode substituir esses valores.
sed -i "s%AWS_REGION%$aws-region~g; s%EKS_ACTIVATION_ID%$EKS_ACTIVATION_ID~g; s%EKS_ACTIVATION_CODE%$(echo -n $EKS_ACTIVATION_CODE | base64)~g" eks-connector.yaml
Importante
Certifique-se de que seu código de ativação esteja no formato de base64.
-
Em um terminal que possa acessar o cluster, você pode aplicar o arquivo de manifesto atualizado, executando o seguinte comando:
kubectl apply -f eks-connector.yaml
-
Depois que os arquivos YAML de associação de função e manifesto do Amazon EKS Connector forem aplicados ao cluster do Kubernetes, confirme se o cluster está conectado.
aws eks describe-cluster \ --name "my-first-registered-cluster" \ --region AWS_REGION
A saída deve incluir
status=ACTIVE
. -
(Opcional) Adicione etiquetas ao seu cluster. Para ter mais informações, consulte Organizar recursos do Amazon EKS com tags.
Próximas etapas
Se você tiver algum problema com essas etapas, consulte Solução de problemas do Amazon EKS Connector.
Para conceder acesso às entidades principais do IAM ao console do Amazon EKS para visualizar recursos do Kubernetes em um cluster conectado, consulte Conceder acesso para visualizar os recursos do cluster Kubernetes em um console do Amazon EKS.