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
- Interfejs wiersza polecenia platformy Azure.
- Narzędzie wiersza polecenia klastra Kubernetes (kubectl). Możesz też zainstalować narzędzie kubectl, uruchamiając polecenie az aks install-cli w interfejsie wiersza polecenia platformy Azure.
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:
Polecenie az aks get-credentials w interfejsie wiersza polecenia platformy Azure, które służy do uzyskiwania poświadczeń dostępu dla zarządzanego klastra Kubernetes, modyfikuje plik ~/.kube/config .
Polecenie kubectl używa pliku kubeconfig (konfiguracji kubectl) w katalogu $HOME/.kube .
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:
Zmodyfikuj zmienną środowiskową
KUBECONFIG
, aby wskazywała bieżącą lokalizację pliku konfiguracji . Aby uzyskać więcej informacji, zobacz Ustawianie zmiennej środowiskowej KUBECONFIG.Uruchom polecenie kubectl config z parametrem
--kubeconfig=<config-file-location>
.
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.