Criar ou atualizar um arquivo kubeconfig para um cluster do Amazon EKS - Amazon EKS

Criar ou atualizar um arquivo kubeconfig para um cluster 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
Pré-requisitos
  • Um cluster existente do Amazon EKS. Para implantar, consulte Conceitos básicos do 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.28, você poderá usar o kubectl versão 1.27, 1.28 ou 1.29 com ele. Para instalar ou atualizar o kubectl, consulte Instalar ou atualizar o kubectl.

  • A versão 2.12.3 ou superior ou a versão 1.27.160 ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. 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, atualizar e desinstalar a AWS CLI e Configuração rápida com o 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á-la, consulte Instalar a AWS CLI no diretório inicial 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ê usa uma identidade do seu próprio provedor OpenID Connect para acessar seu cluster, consulte Como usar kubectl na documentação do Kubernetes para criar ou atualizar o arquivo kube config.

Criar arquivo kubeconfig automaticamente

Pré-requisitos
  • A versão 2.12.3 ou superior ou a versão 1.27.160 ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. 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, atualizar e desinstalar a AWS CLI e Configuração rápida com o 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á-la, consulte Instalar a AWS CLI no diretório inicial 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.

Para criar o arquivo kubeconfig com a AWS CLI
  1. Crie um arquivo kubeconfig para o cluster. Substitua region-code pela Região da AWS em que seu cluster está localizado 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, a entidade principal do IAM na AWS CLI padrão ou na cadeia de credenciais padrão do SDK será usada. Você pode visualizar sua identidade padrão da AWS CLI ou do SDK executando o comando aws sts get-caller-identity.

    Para todas as opções disponíveis, execute o comando aws eks update-kubeconfig help ou consulte update-kubeconfig na Referência de comando da AWS CLI.

  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.