Configuratiebestand is niet beschikbaar wanneer u verbinding maakt
In dit artikel wordt beschreven hoe u problemen kunt oplossen die optreden wanneer u geen verbinding kunt maken met een AKS-cluster (Azure Kubernetes Service) vanwege een ontbrekend of ongeldig configuratiebestand.
Vereisten
- Azure CLI.
- Het opdrachtregelprogramma kubernetes-cluster (kubectl). U kunt kubectl ook installeren door de opdracht az aks install-cli uit te voeren in Azure CLI.
Symptomen
Tijdens een clusterverbindingspoging wordt een foutbericht weergegeven dat lijkt op de volgende tekst:
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)
Oorzaken
Het hulpprogramma kubectl en andere Kubernetes-verbindingshulpprogramma's gebruiken een lokaal configuratiebestand met de naam config. Het configuratiebestand bevat verificatiereferenties en details om verbinding te maken met het cluster. Standaard:
De opdracht az aks get-credentials in Azure CLI, die wordt gebruikt voor het ophalen van toegangsreferenties voor een beheerd Kubernetes-cluster, wijzigt het ~/.kube/config-bestand .
De kubectl-opdracht maakt gebruik van het kubeconfig-bestand (kubectl-configuratie) in de map $HOME/.kube .
Wat er gebeurt tijdens een kubernetes-sessie is dus afhankelijk van de gebruiker die de kubectl-opdracht uitvoert. Als u zich hebt aangemeld als gebruiker A en beide opdrachten hebt uitgevoerd, gebeurt het volgende:
Met
az aks get-credentials
de opdracht wordt geprobeerd de nieuwe kubeconfig-parameters toe te voegen in het bestand C:\Users\A\.kube\config .Met de kubectl-opdracht wordt geprobeerd het C :\Users\A\.kube\config-bestand te doorzoeken .
Maar als voor kubectl de aanwijzer naar het kubeconfig-bestand is gewijzigd, moet het bestand dat wordt gebruikt voor toegang tot het cluster zich op een andere locatie bevinden.
Opmerking
Een kubeconfig-bestand is een verwijzing naar een bestand dat configuratieparameters bevat voor toegang tot Kubernetes-clusters. Het verwijst niet noodzakelijkerwijs naar een bestand met de naam kubeconfig.
De fout treedt op als een van de volgende scenario's optreedt:
Oorzaak 1: het configuratiebestand bestaat niet
Het configuratiebestand bestaat niet op uw computer.
Oplossing: Sla de referenties op
Laad het configuratiebestand door de az aks get-credentials
opdracht uit te voeren in Azure CLI, waarmee de referenties worden opgeslagen. Als u de standaardlocatie niet wilt gebruiken, geeft u de --file <config-file-location>
parameter op met de locatie van de configuratie (bijvoorbeeld ~/Dir1/Dir2/config of C:\Dir1\Dir2\config).
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Oorzaak 2: het configuratiebestand bevindt zich in de verkeerde map
Het configuratiebestand bevindt zich op uw computer, maar bevindt zich in een andere map dan waar de az aks get-credentials
opdracht en/of het kubectl-hulpprogramma verwacht te zijn.
Oplossing: Verplaats het configuratiebestand , sla de referenties opnieuw op of wijzig de KUBECONFIG-omgevingsvariabele
Voer een of meer van de volgende acties uit:
Verplaats het configuratiebestand naar de map waarin het zich wilt bevinden.
Voer de opdracht
az aks get-credentials
uit. Geef de gewenste locatie op als dit niet de standaardlocatie is.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Gebruik een van de volgende opties om te wijzigen waar kubectl naar configuratieparameters zoekt:
Wijzig de
KUBECONFIG
omgevingsvariabele zodat deze verwijst naar de huidige locatie van het configuratiebestand . Zie De omgevingsvariabele KUBECONFIG instellen voor meer informatie.Voer de opdracht kubectl-configuratie uit met de
--kubeconfig=<config-file-location>
parameter.
Oorzaak 3: het configuratiebestand is verlopen of is beschadigd
Het configuratiebestand bevindt zich op uw computer. Deze bevindt zich ook in de verwachte map voor de az aks get-credentials
opdracht en het hulpprogramma kubectl. Maar het bestand is verlopen of beschadigd.
Oplossing: De referenties opnieuw opgeven
Herstel de referenties, omdat de bestaande referenties mogelijk zijn verlopen of beschadigd. In dat geval kunt u de az aks get-credentials
opdracht uitvoeren met de --overwrite-existing
parameter.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor