Plik konfiguracji nie jest dostępny podczas nawiązywania połączenia

W tym artykule opisano sposób rozwiązywania problemów występujących, gdy nie można nawiązać połączenia z klastrem Azure Kubernetes Service (AKS) z powodu braku lub nieprawidłowego pliku konfiguracji.

Wymagania wstępne

Symptomy

Podczas próby nawiązania połączenia z klastrem zostanie wyświetlony komunikat o błędzie podobny do następującego tekstu:

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)

Przyczyny

Narzędzie kubectl i inne narzędzia połączeń Kubernetes używają lokalnego pliku konfiguracji o nazwie config. Plik konfiguracji zawiera poświadczenia uwierzytelniania i szczegóły umożliwiające nawiązanie połączenia z klastrem. Domyślnie:

Więc to, co dzieje się podczas próby sesji Kubernetes, zależy od użytkownika, który uruchamia polecenie kubectl. Jeśli zalogowano się jako użytkownik A i wykonano oba polecenia, oto co się stanie:

  • Polecenie az aks get-credentials próbuje dodać nowe parametry kubeconfig w pliku C:\Users\A\.kube\config .

  • Polecenie kubectl próbuje przeszukać plik C:\Users\A\.kube\config .

Jeśli jednak wskaźnik do pliku kubeconfig został zmieniony, plik używany do uzyskiwania dostępu do klastra powinien znajdować się w innej lokalizacji.

Uwaga

Plik kubeconfig to odwołanie do pliku zawierającego parametry konfiguracji umożliwiające dostęp do klastrów Kubernetes. Nie musi on odwoływać się do pliku o nazwie kubeconfig.

Błąd występuje, jeśli wystąpi jeden z następujących scenariuszy:

Przyczyna 1. Plik konfiguracji nie istnieje

Plik konfiguracji nie istnieje na maszynie.

Rozwiązanie: Zapisywanie poświadczeń

Załaduj plik konfiguracji , uruchamiając polecenie w interfejsie az aks get-credentials wiersza polecenia platformy Azure, które zapisuje poświadczenia. Jeśli nie chcesz używać lokalizacji domyślnej, określ --file <config-file-location> parametr z lokalizacją konfiguracji (na przykład ~/Dir1/Dir2/config lub C:\Dir1\Dir2\config).

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    [--file <config-file-location>]

Przyczyna 2. Plik konfiguracji znajduje się w niewłaściwym katalogu

Plik konfiguracji znajduje się na maszynie, ale znajduje się w innym katalogu niż az aks get-credentials polecenie i/lub narzędzie kubectl oczekuje, że tak będzie.

Rozwiązanie: przenieś plik konfiguracji , zapisz poświadczenia ponownie lub zmień zmienną środowiskową KUBECONFIG

Wykonaj co najmniej jedną z następujących akcji:

  • Przenieś plik konfiguracji do katalogu, w który ma się znajdować.

  • Uruchom polecenie az aks get-credentials. Określ żądaną lokalizację, jeśli nie jest to lokalizacja domyślna.

    az aks get-credentials --resource-group <cluster-resource-group> \
        --name <cluster-name> \
        [--file <config-file-location>]
    
  • Użyj jednej z następujących opcji, aby zmienić miejsce, w którym platforma kubectl szuka parametrów konfiguracji:

Przyczyna 3. Plik konfiguracji wygasł lub jest uszkodzony

Plik konfiguracji znajduje się na maszynie. Jest również w oczekiwanym katalogu dla az aks get-credentials polecenia i narzędzia kubectl. Ale plik wygasł lub jest uszkodzony.

Rozwiązanie: Ponowne konfigurowanie poświadczeń

Ponownie skoryguj poświadczenia, ponieważ istniejące poświadczenia mogą wygasnąć lub zostać uszkodzone. W takim przypadku możesz uruchomić az aks get-credentials polecenie z parametrem --overwrite-existing .

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    --overwrite-existing \
    [--file <config-file-location>]

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.