View a markdown version of this page

Conecte o kubectl a um cluster de EKS criando um arquivo kubeconfig - Amazon EKS

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 o kubectl a um cluster de EKS criando um arquivo kubeconfig

dica

Registre-se para os próximos workshops do Amazon EKS.

Neste tópico, você cria um arquivo kubeconfig para o cluster (ou atualiza um existente).

A ferramenta da linha de comando kubectl usa informações de configuração em arquivos kubeconfig para se comunicar com o servidor de API de um cluster. Para obter mais informações, consulte Organizando o acesso ao cluster usando arquivos kubeconfig na documentação do Kubernetes.

O Amazon EKS usa o comando aws eks get-token com kubectl para autenticação de cluster. Por padrão, a AWS CLI usa as mesmas credenciais que são retornadas com o seguinte comando:

aws sts get-caller-identity
  • Um cluster existente do Amazon EKS. Para implantar, consulte Começar a usar o Amazon EKS.

  • A ferramenta da linha de comando kubectl está instalada no seu dispositivo ou no AWS CloudShell. A versão pode ser a mesma ou até uma versão secundária anterior ou posterior à versão do Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a 1.29, será possível usar o kubectl versão 1.28, 1.29 ou 1.30 com ele. Para instalar ou atualizar o kubectl, consulte Configurar o kubectl e o eksctl.

  • Versão 2.12.3 ou posterior ou versão 1.27.160 ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. Os gerenciadores de pacotes, como yum, apt-get ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Installing e Quick configuration with aws configure, no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte Instalar a AWS CLI no seu diretório pessoal, no Guia do usuário do AWS CloudShell.

  • Um usuário ou perfil do IAM com permissão para usar a ação de API eks:DescribeCluster para o cluster que você especificar. Para obter mais informações, consulte Exemplos de políticas baseadas em identidade do Amazon EKS. Se você usar uma identidade do seu próprio provedor OpenID Connect para acessar o cluster, consulte Utilizando kubectl na documentação do Kubernetes para criar ou atualizar o arquivo kube config.

Como conectar usando o console do EKS (CloudShell)

É possível estabelecer conexão com o cluster diretamente pelo Console de gerenciamento da AWS ao usar o AWS CloudShell, sem necessidade de configuração local.

  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. Escolha o nome do cluster ao qual você deseja se conectar.

  3. Na página de detalhes do cluster, selecione Conectar na barra de ações localizada no canto superior direito.

  4. O AWS CloudShell é iniciado com a ferramenta kubectl já configurada e pronta para uso no cluster.

Após a conexão, você já pode executar comandos do kubectl imediatamente:

kubectl get nodes kubectl get pods -A

As sessões do CloudShell incluem a ferramenta kubectl, a AWS CLI e os utilitários padrão do CloudShell. Este atributo é compatível com clusters que usam endpoints públicos e privados do servidor de API. Para clusters com endpoints privados, o CloudShell inicia automaticamente um ambiente em uma VPC para acessar o servidor de API privado do cluster e solicita que você informe um nome para esse ambiente.

Como criar o arquivo kubeconfig usando a AWS CLI

  • Versão 2.12.3 ou posterior ou versão 1.27.160 ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. Os gerenciadores de pacotes, como yum, apt-get ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Installing e Quick configuration with aws configure, no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte Instalar a AWS CLI no seu diretório pessoal, no Guia do usuário do AWS CloudShell.

  • Permissão para usar a ação de API eks:DescribeCluster para o cluster que você especificar. Para obter mais informações, consulte Exemplos de políticas baseadas em identidade do Amazon EKS.

    1. Crie um arquivo kubeconfig para o cluster. Substitua region-code pela região AWS em que seu cluster se encontra e substitua my-cluster pelo nome do seu cluster.

      aws eks update-kubeconfig --region region-code --name my-cluster

      Por padrão, o arquivo de configuração resultante é criado no caminho padrão do kubeconfig (.kube) em seu diretório inicial ou mesclado com um config existente no local. É possível especificar outro caminho com a opção --kubeconfig.

      É possível especificar um ARN de perfil do IAM com a opção --role-arn para uso na autenticação quando você emitir comandos kubectl. Caso contrário, será usada a entidade principal do IAM em sua cadeia de credenciais padrão da AWS CLI ou SDK. É possível visualizar sua identidade padrão AWS CLI ou SDK executando o comando aws sts get-caller-identity.

      Para obter todas as opções disponíveis, execute o comando aws eks update-kubeconfig help ou consulte update-kubeconfig em AWS CLI Command Reference.

    2. Teste a configuração.

      kubectl get svc

      Veja um exemplo de saída abaixo.

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

      Se você receber qualquer erro de autorização ou de tipo de recurso, consulte Acesso negado ou não autorizado (kubectl) no tópico de solução de problemas.