O arquivo Config não está disponível ao se conectar

Este artigo descreve como corrigir problemas que ocorrem quando você não pode se conectar a um cluster do AKS (Serviço de Kubernetes do Azure) devido a um arquivo de configuração ausente ou inválido.

Pré-requisitos

  • CLI do Azure.
  • A ferramenta de linha de comando do cluster kubernetes (kubectl). Como alternativa, você pode instalar o kubectl executando o comando az aks install-cli na CLI do Azure.

Sintomas

Durante uma tentativa de conexão de cluster, uma mensagem de erro semelhante ao texto a seguir é exibida:

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it. 

error: You must be logged in to the server (the server has asked for the client to provide credentials)

Causas

A ferramenta kubectl e outras ferramentas de conexão do Kubernetes usam um arquivo de configuração local chamado configuração. O arquivo de configuração contém credenciais de autenticação e detalhes para se conectar ao cluster. Por padrão:

Portanto, o que acontece durante uma tentativa de sessão do Kubernetes depende do usuário que está executando o comando kubectl. Se você entrou como usuário A e executou ambos os comandos, veja o que acontece:

  • O az aks get-credentials comando tenta adicionar os novos parâmetros kubeconfig no arquivo C:\Users\A\.kube\config .

  • O comando kubectl tenta pesquisar o arquivo C:\Users\A\.kube\config .

Mas para kubectl, se o ponteiro para o arquivo kubeconfig tiver sido alterado, o arquivo usado para acessar o cluster deverá estar em um local diferente.

Observação

Um arquivo kubeconfig é uma referência a um arquivo que contém parâmetros de configuração para acessar clusters do Kubernetes. Ele não se refere necessariamente a um arquivo chamado kubeconfig.

O erro ocorrerá se ocorrer um dos seguintes cenários:

Causa 1: o arquivo de configuração não existe

O arquivo de configuração não existe em seu computador.

Solução: salvar as credenciais

Carregue o arquivo de configuração executando o az aks get-credentials comando na CLI do Azure, que salva as credenciais. Se você não quiser usar o local padrão, especifique o --file <config-file-location> parâmetro com o local da configuração (por exemplo, ~/Dir1/Dir2/config ou C:\Dir1\Dir2\config).

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    [--file <config-file-location>]

Causa 2: O arquivo de configuração está no diretório errado

O arquivo de configuração está em seu computador, mas está em um diretório diferente de onde o az aks get-credentials comando e/ou a ferramenta kubectl esperam que ele seja.

Solução: mover o arquivo de configuração , salvar as credenciais novamente ou alterar a variável de ambiente KUBECONFIG

Tome uma ou mais das seguintes ações:

  • Mova o arquivo de configuração para o diretório em que você deseja que ele esteja.

  • Execute o comando az aks get-credentials. Especifique o local desejado se não for o local padrão.

    az aks get-credentials --resource-group <cluster-resource-group> \
        --name <cluster-name> \
        [--file <config-file-location>]
    
  • Use uma das seguintes opções para alterar onde o kubectl procura parâmetros de configuração:

Causa 3: o arquivo de configuração expirou ou está corrompido

O arquivo de configuração está em seu computador. Ele também está no diretório esperado para o az aks get-credentials comando e a ferramenta kubectl. Mas o arquivo está expirado ou corrompido.

Solução: restabelecer as credenciais

Restabeleça as credenciais porque as credenciais existentes podem estar expiradas ou corrompidas. Nesse caso, você pode executar o az aks get-credentials comando com o --overwrite-existing parâmetro.

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    --overwrite-existing \
    [--file <config-file-location>]

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.