Compartilhar via


O arquivo de configuração não está disponível ao conectar

Este artigo descreve como corrigir problemas que ocorrem quando você não consegue 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

Sintomas

Durante uma tentativa de conexão de cluster, uma mensagem de erro semelhante ao seguinte texto é 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 config. O arquivo de configuração contém credenciais de autenticação e detalhes para se conectar ao cluster. Por padrão:

  • O comando az aks get-credentials na CLI do Azure, que é usado para obter credenciais de acesso para um cluster gerenciado do Kubernetes, modifica o arquivo ~/.kube/config .

  • O comando kubectl usa o arquivo kubeconfig (configuração kubectl) no diretório $HOME/.kube .

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 os dois 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 sua máquina.

Solução: salve as credenciais

Carregue o arquivo de configuração executando o comando na CLI do az aks get-credentials 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 de config (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 sua máquina, mas está em um diretório diferente de onde o az aks get-credentials comando e/ou a ferramenta kubectl espera que ele esteja.

Solução: mova o arquivo de configuração , salve as credenciais novamente ou altere a variável de ambiente KUBECONFIG

Execute uma ou mais das seguintes ações:

  • Mova o arquivo de configuração para o diretório em que 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 kubectl procura parâmetros de configuração:

    • Modifique a variável de KUBECONFIG ambiente para apontar para o local atual do arquivo de configuração . Para obter mais informações, consulte Definir a variável de ambiente KUBECONFIG.

    • Execute o comando kubectl config com o --kubeconfig=<config-file-location> parâmetro.

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

O arquivo de configuração está em sua máquina. Também está no diretório esperado para o az aks get-credentials comando e a ferramenta kubectl. Mas o arquivo expirou ou está corrompido.

Solução: restabelecer as credenciais

Restabeleça as credenciais, pois 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.