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:
O comando az aks get-credentials na CLI do Azure, que é usado para obter credenciais de acesso para um cluster do Kubernetes gerenciado, 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 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:
Modifique a
KUBECONFIG
variável de 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 de configuração kubectl 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 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.