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 usługi Azure Kubernetes Service (AKS) z powodu brakującego 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 połączenia klastra 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łączenia 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 (konfiguracja kubectl) w katalogu $HOME/.kube .
Tak więc to, co się dzieje 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 .
Jednak w przypadku narzędzia kubectl, jeśli wskaźnik do pliku kubeconfig uległ zmianie, plik używany do uzyskiwania dostępu do klastra ma znajdować się w innej lokalizacji.
Uwaga 16.
Plik kubeconfig jest odwołaniem do pliku zawierającego parametry konfiguracji na potrzeby uzyskiwania dostępu do klastrów Kubernetes. Niekoniecznie odwołuje 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 az aks get-credentials
polecenie w interfejsie wiersza polecenia platformy Azure, co powoduje zapisanie poświadczeń. 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, od którego az aks get-credentials
polecenie i/lub narzędzie kubectl oczekuje, że 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órym ma znajdować się.
Uruchom polecenie
az aks get-credentials
. Określ odpowiednią 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 narzędzie kubectl szuka parametrów konfiguracji:
Zmodyfikuj zmienną
KUBECONFIG
środowiskową, 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. Znajduje się również w oczekiwanym katalogu dla az aks get-credentials
polecenia i narzędzia kubectl. Ale plik wygasł lub uszkodzony.
Rozwiązanie: ponowne opublikowanie poświadczeń
Ponownie opublikuj poświadczenia, ponieważ istniejące poświadczenia mogą być wygasłe lub uszkodzone. W takim przypadku możesz uruchomić az aks get-credentials
polecenie za pomocą parametru --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 na temat platformy Azure.