Configuratiebestand is niet beschikbaar wanneer u verbinding maakt
In dit artikel wordt beschreven hoe u problemen oplost die optreden wanneer u geen verbinding kunt maken met een AKS-cluster (Azure Kubernetes Service) vanwege een ontbrekend of ongeldig configuratiebestand .
Voorwaarden
- 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 om toegangsreferenties op te halen voor een beheerd Kubernetes-cluster, wijzigt het bestand ~/.kube/config .
De kubectl-opdracht maakt gebruik van het kubeconfig-bestand (kubectl-configuratie) in de map $HOME/.kube .
Wat er gebeurt tijdens een geprobeerde Kubernetes-sessie, is dus afhankelijk van de gebruiker die de kubectl-opdracht uitvoert. Als u zich als gebruiker A hebt aangemeld en beide opdrachten hebt uitgevoerd, gebeurt het volgende:
De
az aks get-credentials
opdracht probeert de nieuwe kubeconfig-parameters toe te voegen in het bestand C:\Users\A\.kube\config .De kubectl-opdracht probeert het bestand C:\Users\A\.kube\config te doorzoeken .
Maar als de aanwijzer naar het kubeconfig-bestand is gewijzigd voor kubectl, moet het bestand dat wordt gebruikt voor toegang tot het cluster, zich op een andere locatie bevinden.
Notitie
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: De referenties opslaan
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 dat het is.
Oplossing: Verplaats het configuratiebestand , sla de referenties opnieuw op of wijzig de omgevingsvariabele KUBECONFIG
Voer een of meer van de volgende acties uit:
Verplaats het configuratiebestand naar de map waarin het zich bevindt.
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 zoekt naar configuratieparameters:
Wijzig de
KUBECONFIG
omgevingsvariabele zodat deze verwijst naar de huidige locatie van het configuratiebestand . Zie De omgevingsvariabele KUBECONFIG instellen voor meer informatie.Voer de kubectl-configuratieopdracht 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 kubectl-hulpprogramma. Maar het bestand is verlopen of beschadigd.
Oplossing: De referenties herstellen
Herstel de referenties, omdat de bestaande referenties mogelijk verlopen of beschadigd zijn. 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 Azure-feedbackcommunity.