Konfigurationsdatei ist beim Herstellen einer Verbindung nicht verfügbar
In diesem Artikel wird beschrieben, wie Sie Probleme beheben, die auftreten, wenn Sie aufgrund einer fehlenden oder ungültigen Konfigurationsdatei keine Verbindung mit einem Azure Kubernetes Service (AKS)-Cluster herstellen können.
Voraussetzungen
- Azure CLI.
- Das Kubernetes-Cluster-Befehlszeilentool (kubectl). Alternativ können Sie kubectl installieren, indem Sie den Befehl "az aks install-cli " in Azure CLI ausführen.
Problembeschreibung
Während eines Clusterverbindungsversuchs wird eine Fehlermeldung ähnlich dem folgenden Text angezeigt:
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)
Ursachen
Das Kubectl-Tool und andere Kubernetes-Verbindungstools verwenden eine lokale Konfigurationsdatei namens "config". Die Konfigurationsdatei enthält Authentifizierungsanmeldeinformationen und Details zum Herstellen einer Verbindung mit dem Cluster. Standardmäßig:
Der Befehl az aks get-credentials in Azure CLI, der zum Abrufen von Zugriffsanmeldeinformationen für einen verwalteten Kubernetes-Cluster verwendet wird, ändert die Datei "~/.kube/config ".
Der Kubectl-Befehl verwendet die Kubeconfig-Datei (Kubectl-Konfiguration) im Verzeichnis $HOME/.kube .
Was also während einer versuchten Kubernetes-Sitzung geschieht, hängt vom Benutzer ab, der den Kubectl-Befehl ausführt. Wenn Sie sich als Benutzer A angemeldet und beide Befehle ausgeführt haben, geschieht Folgendes:
Der
az aks get-credentialsBefehl versucht, die neuen kubeconfig-Parameter in der Datei "C:\UsersA.kubeconfig\\\" hinzuzufügen.Der Kubectl-Befehl versucht, die Datei "C:\UsersA.kubeconfig\\\" zu durchsuchen.
Wenn sich jedoch der Zeiger auf die Kubeconfig-Datei geändert hat, sollte sich die Datei, die für den Zugriff auf den Cluster verwendet wird, an einem anderen Speicherort befinden.
Hinweis
Eine Kubeconfig-Datei ist ein Verweis auf eine Datei, die Konfigurationsparameter für den Zugriff auf Kubernetes-Cluster enthält. Sie bezieht sich nicht unbedingt auf eine Datei mit dem Namen "kubeconfig".
Der Fehler tritt auf, wenn eines der folgenden Szenarien auftritt:
Ursache 1: Die Konfigurationsdatei ist nicht vorhanden
Die Konfigurationsdatei ist auf Ihrem Computer nicht vorhanden.
Lösung: Speichern der Anmeldeinformationen
Laden Sie die Konfigurationsdatei , indem Sie den az aks get-credentials Befehl in Azure CLI ausführen, der die Anmeldeinformationen speichert. Wenn Sie den Standardspeicherort nicht verwenden möchten, geben Sie den --file <config-file-location> Parameter mit dem Speicherort der Konfiguration an (z . B. ~/Dir1/Dir2/config oder C:\Dir1Dir2config\\).
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Ursache 2: Die Konfigurationsdatei befindet sich im falschen Verzeichnis
Die Konfigurationsdatei befindet sich auf Ihrem Computer, befindet sich jedoch in einem anderen Verzeichnis als das Verzeichnis, in dem der az aks get-credentials Befehl und/oder das Kubectl-Tool dies erwartet.
Lösung: Verschieben der Konfigurationsdatei , erneutes Speichern der Anmeldeinformationen oder Ändern der KUBECONFIG-Umgebungsvariablen
Führen Sie eine oder mehrere der folgenden Aktionen aus:
Verschieben Sie die Konfigurationsdatei in das Verzeichnis, in dem sie sich befinden soll.
Führen Sie den Befehl
az aks get-credentialsaus. Geben Sie den gewünschten Speicherort an, wenn es sich nicht um den Standardspeicherort handelt.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]Verwenden Sie eine der folgenden Optionen, um zu ändern, wo kubectl nach Konfigurationsparametern sucht:
Ändern Sie die
KUBECONFIGUmgebungsvariable so, dass sie auf den aktuellen Speicherort der Konfigurationsdatei verweist. Weitere Informationen finden Sie unter Festlegen der KUBECONFIG-Umgebungsvariablen.Führen Sie den Befehl "kubectl config " mit dem
--kubeconfig=<config-file-location>Parameter aus.
Ursache 3: Die Konfigurationsdatei ist abgelaufen oder beschädigt
Die Konfigurationsdatei befindet sich auf Ihrem Computer. Es befindet sich auch im erwarteten Verzeichnis für den az aks get-credentials Befehl und das Kubectl-Tool. Die Datei ist jedoch abgelaufen oder beschädigt.
Lösung: Wiederherstellen der Anmeldeinformationen
Stellen Sie die Anmeldeinformationen wieder her, da die vorhandenen Anmeldeinformationen möglicherweise abgelaufen oder beschädigt sind. In diesem Fall können Sie den az aks get-credentials Befehl mit dem --overwrite-existing Parameter ausführen.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]