Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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-credentialsfö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.