Por que não consigo me conectar ao meu cluster do Amazon EKS?

Última atualização: 2021-06-23

Criei um cluster do Amazon Elastic Kubernetes Service (Amazon EKS), mas não consigo me conectar ao meu cluster.

Descrição breve

Depois de criar o cluster do Amazon EKS, você deverá configurar o arquivo kubeconfig com a AWS Command Line Interface (AWS CLI). Essa configuração permite conectar-se ao cluster usando a linha de comando kubectl.

A resolução a seguir mostra como criar um arquivo kubeconfig para o cluster com o comando update-kubeconfig da AWS CLI. Para atualizar manualmente o arquivo kubeconfig sem usar a AWS CLI, consulte Criar um kubeconfig para o Amazon EKS.

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar usando a versão mais recente da AWS CLI.

Resolução

1.    Verifique se a AWS CLI versão 1.16.308 ou superior está instalada no seu sistema:

$ aws --version

Importante: você deve ter o Python versão 2.7.9 ou superior instalado no seu sistema. Caso contrário, você receberá um erro.

Dica: gerenciadores de pacotes como yum, apt-get ou homebrew para macOS costumam ser usados para instalar a AWS CLI.

2.    Verifique a identidade atual para confirmar se você está usando as credenciais corretas com as permissões para o cluster do Amazon EKS:

aws sts get-caller-identity

Observação: o usuário ou a função da entidade do AWS Identity and Access Management (IAM) que cria um cluster da Amazon recebe automaticamente as permissões quando o cluster é criado. As permissões são concedidas na configuração RBAC do cluster no ambiente de gerenciamento. Usuários ou funções do IAM também podem ter acesso a um cluster do Amazon EKS em aws-auth ConfigMap. Por padrão, o AWS IAM Authenticator for Kubernetes usa a identidade configurada da AWS CLI ou do AWS SDK. Consulte Gerenciamento de usuários ou funções do IAM para o cluster.

3.    Crie ou atualize o arquivo kubeconfig do seu cluster:

aws eks --region region update-kubeconfig --name cluster_name

Observação: substitua region pela sua Região da AWS. Substitua cluster_name pelo nome do seu cluster.

Por padrão, o arquivo de configuração é criado no caminho de kubeconfig ($HOME/.kube/config) no diretório inicial ou mesclado com um kubeconfig existente nesse local. No Windows, o arquivo está em %USERPROFILE%\.kube\config.

Você também pode especificar outro caminho definindo a variável de ambiente KUBECONFIG (do site Kubernetes) ou com a seguinte opção --kubeconfig:

$ kubectl get pods --kubeconfig ./.kube/config

Observação: para autenticação ao executar comandos kubectl, você pode especificar o nome do recurso da Amazon (ARN) de uma função do IAM com a opção --role-arn. Caso contrário, a entidade do IAM na cadeia de credenciais padrão da AWS CLI ou do AWS SDK será usada. Para obter mais informações, consulte update-kubeconfig ou conclua a etapa 6 na seção “Criar kubeconfig manualmente” de Criar um kubeconfig para o Amazon EKS.

4.    Teste sua configuração:

$ kubectl get svc

Exemplo de saída:

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m

Observação: se você receber outros erros de autorização ou tipo de recurso, consulte Não autorizado ou acesso negado (kubectl).