

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Conecte um cluster Kubernetes externo ao console de gerenciamento do Amazon EKS
<a name="connecting-cluster"></a>

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
<a name="connecting-cluster-considerations"></a>

Você pode usar manifestos YAML ao instalar o agente. Como alternativa, você pode usar o Helm se registrar o cluster com o Console de gerenciamento da AWS 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
<a name="connector-prereqs"></a>
+ 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](connector-iam-role.md#create-connector-role).
+ É necessário ter as seguintes permissões para registrar um cluster:
  +  `eks:RegisterCluster` 
  +  `ssm:CreateActivation` 
  +  `ssm:DeleteActivation` 
  +  `iam:PassRole` 

## Etapa 1: Registrar o cluster
<a name="connector-connecting"></a>

Para registrar um cluster no conector do Amazon EKS, você pode usar uma destas ferramentas:
+  [AWS CLI](#awscli_register_cluster_connect) 
+  [Console de gerenciamento da AWS](#console_register_cluster_connect) 
+  [`eksctl`](#eksctl_register_cluster_connect) 

### AWS CLI
<a name="awscli_register_cluster_connect"></a>

1.  AWS A CLI deve estar instalada. Para instalá-lo ou atualizá-lo, consulte [Instalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).

1. 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](eks-connector.md#connector-iam-permissions).

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

### Console de gerenciamento da AWS
<a name="console_register_cluster_connect"></a>

1. Abra o [console do Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

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

1. Na seção **Configure cluster (Configurar cluster)**, preencha os seguintes campos:
   +  **Name** (Nome) – um nome exclusivo para o cluster.
   +  **Provider** (Fornecedor): clique 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.

1. Selecione **Register cluster (Registrar cluster)**.

1. 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`
<a name="eksctl_register_cluster_connect"></a>

1.  O `eksctl` versão `0.68` ou posterior deve estar instalado. Para obter informações sobre instalação ou upgrade, consulte [Conceitos básicos do Amazon EKS: `eksctl`](getting-started-eksctl.md).

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

1. 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`
<a name="eks-connector-apply"></a>

Para instalar o agente do `eks-connector`, use uma das seguintes ferramentas:
+  [Helm](#helm_agent_cluster_connect) 
+  [yaml](#yaml_agent_cluster_connect) 

### Helm
<a name="helm_agent_cluster_connect"></a>

**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 Console de gerenciamento da AWS na etapa anterior, use o comando que você copiou da etapa anterior que tem esses valores preenchidos.

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

### yaml
<a name="yaml_agent_cluster_connect"></a>

Conclua 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
   ```

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

1. 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
   ```

1. 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`.

1. (Opcional) Adicione etiquetas ao seu cluster. Para ter mais informações, consulte [Organizar recursos do Amazon EKS com tags](eks-using-tags.md).

## Próximas etapas
<a name="eks-connector-next"></a>

Se você tiver algum problema com essas etapas, consulte [Solução de problemas do Amazon EKS Connector](troubleshooting-connector.md).

Para conceder acesso adicional para as [entidades principais do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) 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](connector-grant-access.md).