Ir para o conteúdo

Como soluciono erros de cluster do Amazon EKS quando uso um bastion host?

3 minuto de leitura
0

Quando uso o cliente kubectl para me conectar ao Amazon Elastic Kubernetes Service (Amazon EKS) a partir do meu bastion host, recebo o seguinte erro: "error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"". Quero resolver esse problema.

Resolução

Você recebe o erro invalid apiVersion quando a versão do kubectl que você está usando é incompatível com a versão da API do seu cluster do Kubernetes. Esse erro normalmente ocorre quando você usa uma versão mais antiga da AWS Command Line Interface (AWS CLI) para atualizar o arquivo kubeconfig em $home/.kube/config. Para resolver esse problema, atualize a AWS CLI para a versão mais recente. Em seguida, atualize o arquivo kubeconfig novamente. Quando você atualiza o arquivo kubeconfig, o campo apiVersion no arquivo kubeconfig é atualizado para a versão mais recente (v1beta1).

Atualize para a versão mais recente da AWS CLI

Instalar ou atualizar a versão mais recente da AWS CLI.

Observação: Se você receber erros ao executar comandos da AWS CLI, consulte Solução de problemas da AWS CLI.

Instale uma versão compatível do kubectl

Observação: Você deve usar uma versão do kubectl que esteja dentro de uma pequena diferença de versão do seu ambiente de gerenciamento de cluster do Amazon EKS. Por exemplo, um cliente kubectl de 1.28 funciona com clusters do Kubernetes 1.27, 1.28 e 1.29.

Para instalar uma versão compatível do kubectl para sua versão de cluster do Amazon EKS, conclua as seguintes etapas:

  1. Para baixar o kubectl, execute o seguinte comando:

        $ curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.29.3/2024-04-19/bin/linux/arm64/kubectl.sha256
        $ chmod +x ./kubectl

    Observação: Substitua linux pelo seu sistema operacional, arm64 pela sua distribuição e 1.29 pela sua versão do Kubernetes.

  2. Copie o arquivo kubectl baixado para uma pasta em seu caminho. Se você já instalou uma versão do kubectl, crie um $HOME/bin/kubectl:

       $ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH

    Observação: Você deve listar $HOME/bin primeiro no $PATH.

  3. Para verificar a versão instalada do kubectl, execute o seguinte comando:

       $ kubectl version --client
  4. (Opcional) Adicione o caminho $HOME/bin ao seu arquivo de inicialização do shell:

       $ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  5. Para atualizar seu arquivo kubeconfig de v1alpha1 para v1beta1, execute o seguinte comando:

       $ aws eks update-kubeconfig --name clusterName --region regionName

    Observação: Substitua clusterName pelo nome do seu cluster e regionName pela sua região da AWS.

  6. Para testar se é possível se conectar ao cluster, execute o seguinte comando:

      $ kubectl get svc
      $ kubectl get pod
AWS OFICIALAtualizada há um ano