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.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

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 Runningjest .

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.

Flowchart showing a visual representation of checking for connection issues when using a proxy.

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 Runningjest .

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