Die 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 -Cluster (AKS) herstellen können.
Voraussetzungen
- Azure CLI.
- Das Befehlszeilentool für Kubernetes-Cluster (kubectl). Alternativ können Sie kubectl installieren, indem Sie den Befehl az aks install-cli in der 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 der Azure CLI, der zum Abrufen von Zugriffsanmeldeinformationen für einen verwalteten Kubernetes-Cluster verwendet wird, ändert die Datei ~/.kube/config .
Der befehl kubectl verwendet die kubeconfig-Datei (kubectl configuration) 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-credentials
Befehl versucht, die neuen kubeconfig-Parameter in der Datei C:\Users\A\.kube\config hinzuzufügen.Der Befehl kubectl versucht, die Datei C:\Users\A\.kube\config zu durchsuchen.
Wenn sich der Zeiger auf die kubeconfig-Datei für kubectl jedoch 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. Es verweist 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 Befehl in der az aks get-credentials
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:\Dir1\Dir2\config).
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 der az aks get-credentials
Befehl und/oder das kubectl-Tool.
Lösung: Verschieben Sie die Konfigurationsdatei , speichern Sie die Anmeldeinformationen erneut, oder ändern Sie die KUBECONFIG-Umgebungsvariable.
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-credentials
aus. Geben Sie den gewünschten Standort 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
KUBECONFIG
Umgebungsvariable 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 erneut 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>]
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.