Diagnozowanie problemów z połączeniem dla klastrów Kubernetes z włączoną usługą Azure Arc
Jeśli występują problemy z połączeniem klastra z usługą Azure Arc, prawdopodobnie jest to spowodowane jednym z problemów wymienionych tutaj. Udostępniamy dwa schematy blokowe z przewodnikiem: jeden, jeśli nie używasz serwera proxy, i jeden, który ma zastosowanie, jeśli połączenie sieciowe korzysta z serwera proxy.
Napiwek
Kroki opisane w tym schemacie blokowym dotyczą używania interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell do łączenia klastra. Jednak niektóre kroki wymagają użycia interfejsu wiersza polecenia platformy Azure. Jeśli jeszcze nie zainstalowano interfejsu wiersza polecenia platformy Azure, pamiętaj, aby to zrobić przed rozpoczęciem.
Połączenie ions bez serwera proxy
Przejrzyj ten schemat blokowy, aby zdiagnozować problem podczas próby połączenia klastra z usługą Azure Arc bez serwera proxy. Poniżej przedstawiono więcej szczegółów na temat poszczególnych kroków.
Czy tożsamość platformy Azure ma wystarczające uprawnienia?
Zapoznaj się z wymaganiami wstępnymi dotyczącymi łączenia klastra i upewnij się, że tożsamość używana do łączenia klastra ma niezbędne uprawnienia.
Czy używasz najnowszej wersji interfejsu wiersza polecenia platformy Azure?
Upewnij się, że masz zainstalowaną najnowszą wersję.
Jeśli klaster został połączony przy użyciu programu Azure PowerShell, upewnij się, że używasz najnowszej wersji.
Czy rozszerzenie jest najnowszą connectedk8s
wersją?
Zaktualizuj rozszerzenie interfejsu wiersza polecenia connectedk8s
platformy Azure do najnowszej wersji, uruchamiając następujące polecenie:
az extension update --name connectedk8s
Jeśli rozszerzenie nie zostało jeszcze zainstalowane, możesz to zrobić, uruchamiając następujące polecenie:
az extension add --name connectedk8s
Czy polecenie kubeconfig wskazuje odpowiedni klaster?
Uruchom polecenie kubectl config get-contexts
, aby potwierdzić nazwę kontekstu docelowego. Następnie ustaw domyślny kontekst na właściwy klaster, uruchamiając polecenie kubectl config use-context <target-cluster-name>
.
Czy wszyscy dostawcy zasobów są zarejestrowani?
Upewnij się, że dostawcy zasobów Microsoft.Kubernetes, Microsoft.KubernetesConfiguration i Microsoft.ExtendedLocation są zarejestrowani.
Czy spełnione są wszystkie wymagania dotyczące sieci?
Przejrzyj wymagania dotyczące sieci i upewnij się, że żadne wymagane punkty końcowe nie są blokowane.
Czy wszystkie zasobniki w azure-arc
przestrzeni nazw są uruchomione?
Jeśli wszystko działa prawidłowo, zasobniki powinny być w Running
stanie . Uruchom polecenie kubectl get pods -n azure-arc
, aby potwierdzić, czy stan zasobnika nie Running
jest .
Nadal masz problemy?
Powyższe kroki rozwiążą wiele typowych problemów z połączeniem, ale jeśli nadal nie możesz nawiązać połączenia, wygeneruj plik dziennika rozwiązywania problemów, a następnie otwórz wniosek o pomoc techniczną, abyśmy mogli dokładniej zbadać problem.
Aby wygenerować plik dziennika rozwiązywania problemów, uruchom następujące polecenie:
az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>
Podczas tworzenia wniosku o pomoc techniczną w sekcji Dodatkowe szczegóły użyj opcji Przekaż plik, aby przekazać wygenerowany plik dziennika.
Połączenie ions z serwerem proxy
Jeśli używasz serwera proxy na co najmniej jednej maszynie, wykonaj pięć pierwszych kroków schematu blokowego innego niż serwer proxy (za pośrednictwem rejestracji dostawcy zasobów), aby uzyskać podstawowe kroki rozwiązywania problemów. Jeśli nadal występują problemy, zapoznaj się z kolejnym schematem blokowym, aby uzyskać dodatkowe kroki rozwiązywania problemów. Poniżej przedstawiono więcej szczegółów na temat poszczególnych kroków.
Czy maszyna wykonuje polecenia za serwerem proxy?
Jeśli maszyna wykonuje polecenia za serwerem proxy, należy ustawić wszystkie niezbędne zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Połączenie przy użyciu serwera proxy ruchu wychodzącego.
Przykład:
export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"
Czy serwer proxy akceptuje tylko zaufane certyfikaty?
Pamiętaj, aby uwzględnić ścieżkę pliku certyfikatu, dołączając --proxy-cert <path-to-cert-file>
je podczas uruchamiania az connectedk8s connect
polecenia.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Czy serwer proxy może uzyskać dostęp do wymaganych punktów końcowych sieci?
Przejrzyj wymagania dotyczące sieci i upewnij się, że żadne wymagane punkty końcowe nie są blokowane.
Czy serwer proxy korzysta tylko z protokołu HTTP?
Jeśli serwer proxy używa tylko protokołu HTTP, można użyć proxy-http
ich dla obu parametrów.
Jeśli serwer proxy jest skonfigurowany z protokołem HTTP i HTTPS, uruchom az connectedk8s connect
polecenie z określonymi --proxy-https
parametrami i --proxy-http
. Upewnij się, że używasz --proxy-http
serwera proxy HTTP i --proxy-https
serwera proxy HTTPS.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>
Czy serwer proxy wymaga pomijania zakresów komunikacji między usługami?
Jeśli potrzebujesz pomijania zakresów, użyj --proxy-skip-range <excludedIP>,<excludedCIDR>
polecenia w poleceniu az connectedk8s connect
.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>
Czy wszystkie zasobniki w azure-arc
przestrzeni nazw są uruchomione?
Jeśli wszystko działa prawidłowo, zasobniki powinny być w Running
stanie . Uruchom polecenie kubectl get pods -n azure-arc
, aby potwierdzić, czy stan zasobnika nie Running
jest .
Nadal masz problemy?
Powyższe kroki rozwiążą wiele typowych problemów z połączeniem, ale jeśli nadal nie możesz nawiązać połączenia, wygeneruj plik dziennika rozwiązywania problemów, a następnie otwórz wniosek o pomoc techniczną, abyśmy mogli dokładniej zbadać problem.
Aby wygenerować plik dziennika rozwiązywania problemów, uruchom następujące polecenie:
az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>
Podczas tworzenia wniosku o pomoc techniczną w sekcji Dodatkowe szczegóły użyj opcji Przekaż plik, aby przekazać wygenerowany plik dziennika.
Następne kroki
- Zobacz więcej wskazówek dotyczących rozwiązywania problemów dotyczących korzystania z platformy Kubernetes z obsługą usługi Azure Arc.
- Przejrzyj proces łączenia istniejącego klastra Kubernetes z usługą Azure Arc.