Il file di configurazione non è disponibile durante la connessione
Questo articolo descrive come risolvere i problemi che si verificano quando non è possibile connettersi a un cluster servizio Azure Kubernetes (AKS) a causa di un file di configurazione mancante o non valido.
Prerequisiti
- Interfaccia della riga di comando di Azure.
- Strumento da riga di comando del cluster Kubernetes (kubectl). In alternativa, è possibile installare kubectl eseguendo il comando az aks install-cli nell'interfaccia della riga di comando di Azure.
Sintomi
Durante un tentativo di connessione cluster viene visualizzato un messaggio di errore simile al testo seguente:
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)
Cause
Lo strumento kubectl e altri strumenti di connessione Kubernetes usano un file di configurazione locale denominato config. Il file di configurazione contiene le credenziali di autenticazione e i dettagli per connettersi al cluster. Per impostazione predefinita:
Il comando az aks get-credentials nell'interfaccia della riga di comando di Azure, usato per ottenere le credenziali di accesso per un cluster Kubernetes gestito, modifica il file ~/.kube/config .
Il comando kubectl usa il file kubeconfig (configurazione kubectl) nella directory $HOME/.kube .
Ciò che accade durante una sessione di Kubernetes tentata dipende quindi dall'utente che esegue il comando kubectl. Se si è eseguito l'accesso come utente A ed è stato eseguito entrambi i comandi, ecco cosa accade:
Il
az aks get-credentials
comando tenta di aggiungere i nuovi parametri kubeconfig nel file C:\Users\A\.kube\config .Il comando kubectl tenta di cercare il file C:\Users\A\.kube\config .
Ma per kubectl, se il puntatore al file kubeconfig è stato modificato, il file usato per accedere al cluster dovrebbe trovarsi in un percorso diverso.
Note
Un file kubeconfig è un riferimento a un file che contiene parametri di configurazione per l'accesso ai cluster Kubernetes. Non fa necessariamente riferimento a un file denominato kubeconfig.
L'errore si verifica se si verifica uno degli scenari seguenti:
Causa 1: Il file di configurazione non esiste
Il file di configurazione non esiste nel computer.
Soluzione: Salvare le credenziali
Caricare il file di configurazione eseguendo il comando nell'interfaccia della az aks get-credentials
riga di comando di Azure, che salva le credenziali. Se non si vuole usare il percorso predefinito, specificare il --file <config-file-location>
parametro con il percorso di configurazione , ad esempio ~/Dir1/Dir2/config o C:\Dir1\Dir2\config.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Causa 2: Il file di configurazione si trova nella directory errata
Il file di configurazione si trova nel computer, ma si trova in una directory diversa da cui il az aks get-credentials
comando e/o lo strumento kubectl lo prevede.
Soluzione: spostare il file di configurazione , salvare di nuovo le credenziali o modificare la variabile di ambiente KUBECONFIG
Eseguire una o più delle azioni seguenti:
Spostare il file di configurazione nella directory in cui si vuole che si trovi.
Eseguire il comando
az aks get-credentials
. Specificare il percorso desiderato se non è il percorso predefinito.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Usare una delle opzioni seguenti per modificare la posizione in cui kubectl cerca i parametri di configurazione:
Modificare la
KUBECONFIG
variabile di ambiente in modo che punti al percorso corrente del file di configurazione . Per altre informazioni, vedere Impostare la variabile di ambiente KUBECONFIG.Eseguire il comando kubectl config con il
--kubeconfig=<config-file-location>
parametro .
Causa 3: Il file di configurazione è scaduto o è danneggiato
Il file di configurazione si trova nel computer. Si trova anche nella directory prevista per il az aks get-credentials
comando e lo strumento kubectl. Ma il file è scaduto o danneggiato.
Soluzione: ristabilire le credenziali
Ristabilire le credenziali perché le credenziali esistenti potrebbero essere scadute o danneggiate. In tal caso, è possibile eseguire il az aks get-credentials
comando con il --overwrite-existing
parametro .
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.