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:

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:\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-credentials aus. 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:

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>]