Condividi tramite


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

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.