Conectar o kubectl a um cluster do EKS criando um arquivo kubeconfig - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Conectar o kubectl a um cluster do EKS criando um arquivo kubeconfig

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 idêntica ou até uma versão secundária anterior ou posterior à versão Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a 1.29, você poderá 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 Instalar e Configuração rápida com 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 ter 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 Usando o kubectl na documentação Kubernetes para criar ou atualizar o arquivo kube config.

Criar arquivo kubeconfig automaticamente

  • 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 Instalar e Configuração rápida com 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 ter 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. Você pode especificar outro caminho com a opção --kubeconfig.

      Você pode especificar um ARN de função 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. Você pode 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.