Konfigurationsfilen är inte tillgänglig vid anslutning
Den här artikeln beskriver hur du åtgärdar problem som uppstår när du inte kan ansluta till ett Azure Kubernetes Service -kluster (AKS) på grund av en saknad eller ogiltig konfigurationsfil.
Förutsättningar
- Azure CLI.
- Kommandoradsverktyget för Kubernetes-klustret (kubectl). Du kan också installera kubectl genom att köra kommandot az aks install-cli i Azure CLI.
Symptom
Under ett klusteranslutningsförsök visas ett felmeddelande som liknar följande text:
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)
Orsaker
Kubectl-verktyget och andra Kubernetes-anslutningsverktyg använder en lokal konfigurationsfil med namnet config. Konfigurationsfilen innehåller autentiseringsuppgifter och information för att ansluta till klustret. Som standard:
Kommandot az aks get-credentials i Azure CLI, som används för att hämta autentiseringsuppgifter för ett hanterat Kubernetes-kluster, ändrar filen ~/.kube/config .
Kubectl-kommandot använder kubeconfig-filen (kubectl-konfiguration) i katalogen $HOME/.kube .
Vad som händer under en Kubernetes-session beror på vilken användare som kör kubectl-kommandot. Om du har loggat in som användare A och kört båda kommandona händer följande:
Kommandot
az aks get-credentials
försöker lägga till de nya kubeconfig-parametrarna i filen C:\Users\A\.kube\config .Kubectl-kommandot försöker söka i C:\Users\A\.kube\config-filen .
Men för kubectl, om pekaren till kubeconfig-filen har ändrats, ska filen som används för att komma åt klustret finnas på en annan plats.
Obs!
En kubeconfig-fil är en referens till en fil som innehåller konfigurationsparametrar för åtkomst till Kubernetes-kluster. Den refererar inte nödvändigtvis till en fil med namnet kubeconfig.
Felet uppstår om något av följande scenarier inträffar:
Orsak 1: Konfigurationsfilen finns inte
Konfigurationsfilen finns inte på datorn.
Lösning: Spara autentiseringsuppgifterna
Läs in konfigurationsfilen genom att az aks get-credentials
köra kommandot i Azure CLI, vilket sparar autentiseringsuppgifterna. Om du inte vill använda standardplatsen anger du parametern --file <config-file-location>
med platsen för konfigurationen (till exempel ~/Dir1/Dir2/config eller C:\Dir1\Dir2\config).
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Orsak 2: Konfigurationsfilen finns i fel katalog
Konfigurationsfilen finns på datorn, men den finns i en annan katalog än där az aks get-credentials
kommandot och/eller kubectl-verktyget förväntar sig att det ska vara.
Lösning: Flytta konfigurationsfilen , spara autentiseringsuppgifterna igen eller ändra MILJÖvariabeln KUBECONFIG
Utför en eller flera av följande åtgärder:
Flytta konfigurationsfilen till den katalog som du vill att den ska finnas i.
Kör kommandot
az aks get-credentials
. Ange den plats som du vill använda om det inte är standardplatsen.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Använd något av följande alternativ för att ändra var kubectl söker efter konfigurationsparametrar:
KUBECONFIG
Ändra miljövariabeln så att den pekar på konfigurationsfilens aktuella plats. Mer information finns i Ange KUBECONFIG-miljövariabeln.Kör kommandot kubectl config med parametern
--kubeconfig=<config-file-location>
.
Orsak 3: Konfigurationsfilen har upphört att gälla eller är skadad
Konfigurationsfilen finns på datorn. Det finns också i den förväntade katalogen för az aks get-credentials
kommandot och kubectl-verktyget. Men filen har upphört att gälla eller är skadad.
Lösning: Återupprätta autentiseringsuppgifterna
Återupprätta autentiseringsuppgifterna eftersom de befintliga autentiseringsuppgifterna kan ha upphört att gälla eller skadats. I så fall kan du köra az aks get-credentials
kommandot med parametern --overwrite-existing
.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för