Conecte um cluster Kubernetes externo ao console de gerenciamento do Amazon EKS - Amazon EKS

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

  1. AWS A CLI deve estar instalada. Para instalá-lo ou atualizá-lo, consulte Instalar a AWS CLI.

  2. 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 e activationCode na próxima etapa.

AWS Management Console

  1. Abra o console do Amazon EKS.

  2. Escolha Add cluster (Adicionar cluster) e selecione Register (Registrar) para abrir a página de configuração.

  3. 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.

  4. Selecione Register cluster (Registrar cluster).

  5. 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

  1. O eksctl versão 0.68 ou posterior deve estar instalado. Para obter informações sobre instalação ou upgrade, consulte Comece a usar o Amazon EKS - eksctl.

  2. 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 cluster

    Isso cria arquivos no seu computador local. Esses arquivos devem ser aplicados ao cluster externo em até três dias, ou o registro expira.

  3. 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.

  1. Se você usou a CLI AWS na etapa anterior, substitua ACTIVATION_CODE e ACTIVATION_ID no comando a seguir pelos valores activationId e activationCode, respectivamente. Substitua o aws-region pela região da AWS que você usou na etapa anterior. Execute o seguinte comando para instalar o agente do eks-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.

  2. Verifique a integridade da implantação do eks-connector instalado e aguarde que o status do cluster registrado no Amazon EKS seja ACTIVE.

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.

  1. 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
  2. Edite o arquivo YAML do Amazon EKS Connector para substituir todas as referências de %AWS_REGION%, %EKS_ACTIVATION_ID% e %EKS_ACTIVATION_CODE% por aws-region, activationId e activationCode 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.

  3. 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
  4. 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.

  5. (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.