Konfigurationsfilen är inte tillgänglig när du ansluter
Den här artikeln beskriver hur du åtgärdar problem som uppstår när du inte kan ansluta till ett AkS-kluster (Azure Kubernetes Service) 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 alltså på den användare som kör kubectl-kommandot. Om du har loggat in som användare A och kört båda kommandona gör du så här:
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 filen C:\Users\A\.kube\config .
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.
Kommentar
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 den ska vara.
Lösning: Flytta konfigurationsfilen, spara autentiseringsuppgifterna igen eller ändra KUBECONFIG-miljövariabeln
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 den 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. Den 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 vara skadade. 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.