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 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 al 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 la connessione 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 Kubernetes tentata dipende quindi dall'utente che esegue il comando kubectl. Se è stato 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 eseguire la ricerca nel file C:\Users\A\.kube\config .
Tuttavia, per kubectl, se il puntatore al file kubeconfig è stato modificato, il file usato per accedere al cluster dovrebbe trovarsi in un percorso diverso.
Nota
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 della 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 quella in 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 tratti.
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 tratta anche della 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.