Podstawowe rozwiązywanie problemów z uruchamianiem klastra usługi AKS
W tym artykule opisano podstawowe metody rozwiązywania problemów, których można użyć, jeśli nie można pomyślnie uruchomić klastra usługi Microsoft Azure Kubernetes Service (AKS).
Wymagania wstępne
Interfejs wiersza polecenia platformy Azure (wersja 2.0.59 lub nowsza).
Narzędzie Kubernetes kubectl . Aby zainstalować narzędzie kubectl przy użyciu interfejsu wiersza polecenia platformy Azure, uruchom polecenie az aks install-cli .
Wyświetlanie błędów z interfejsu wiersza polecenia platformy Azure
Po uruchomieniu klastrów przy użyciu interfejsu wiersza polecenia platformy Azure błędy są rejestrowane jako dane wyjściowe, jeśli operacja zakończy się niepowodzeniem. Poniżej przedstawiono sposób wyświetlania poleceń, danych wejściowych użytkownika i danych wyjściowych operacji w Bash
konsoli:
$ az aks start --resource-group myResourceGroup --name MyManagedCluster
(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35
Te błędy często zawierają szczegółowe opisy tego, co poszło nie tak w operacji uruchamiania klastra, i udostępniają linki do artykułów zawierających więcej szczegółów. Ponadto możesz użyć naszych artykułów dotyczących rozwiązywania problemów jako odwołania na podstawie błędu generowanego przez operację interfejsu wiersza polecenia platformy Azure.
Wyświetlanie szczegółów błędu w witrynie Azure Portal
Aby wyświetlić szczegółowe informacje o błędach w witrynie Azure Portal, zapoznaj się z dziennikiem aktywności platformy Azure. Aby znaleźć listę dzienników aktywności w witrynie Azure Portal, wyszukaj dziennik aktywności. Możesz też wybrać pozycję Powiadomienia (ikona dzwonka), a następnie wybierz pozycję Więcej zdarzeń w dzienniku aktywności.
Lista dzienników na stronie Dziennik aktywności zawiera wpis wiersza, w którym wartość kolumny Nazwa operacji ma nazwę Uruchom klaster zarządzany. Odpowiednie zdarzenie zainicjowane przez wartość kolumny jest ustawione na nazwę konta służbowego. Jeśli operacja zakończy się pomyślnie, w kolumnie Stan zostanie wyświetlona wartość Zaakceptowano.
Co zrobić, jeśli zamiast tego wystąpił błąd? W takim przypadku w polu Stan operacji Uruchom klaster zarządzany jest wyświetlany stan Niepowodzenie. W przeciwieństwie do operacji tworzenia składników klastra w tym miejscu należy rozwinąć wpis operacji, aby przejrzeć wpisy podoperacji. Typowe nazwy podoperacji to akcje zasad, takie jak akcja zasad "audit" i akcja zasad "auditIfNotExists". Niektóre podoperacje będą nadal pokazywać, że zakończyły się pomyślnie.
Aby dokładniej zbadać, możesz wybrać jedną z nieudanych podoperacji. Zostanie otwarte okienko boczne, aby przejrzeć więcej informacji na temat podoperacji. Możesz rozwiązywać problemy z wartościami pól, takich jak Podsumowanie, JSON i Historia zmian. Pole JSON zawiera tekst wyjściowy błędu w formacie JSON i zwykle zawiera najbardziej przydatne informacje.
Wyświetlanie szczegółowych informacji o klastrze
Możesz również wygenerować szczegółowe informacje dotyczące klastra, aby ułatwić rozwiązywanie problemów za pośrednictwem bloku Diagnozowanie i rozwiązywanie problemów w witrynie Azure Portal. Aby uzyskać dostęp do tej funkcji, wykonaj następujące kroki:
W witrynie Azure Portal wyszukaj i wybierz pozycję Usługi Kubernetes.
Wybierz nazwę klastra usługi AKS.
W okienku nawigacji na stronie klastra usługi AKS wybierz pozycję Diagnozuj i rozwiąż problemy.
Na stronie Diagnozowanie i rozwiązywanie problemów wybierz link Szczegółowe informacje o klastrze. Narzędzie analizy klastra analizuje klaster, a następnie udostępnia listę swoich wyników w sekcji Obserwacje i rozwiązania na stronie Szczegółowe informacje o klastrze.
Wybierz jedno z wyników, aby wyświetlić więcej informacji o problemie i jego możliwych rozwiązaniach.
Wyświetlanie zasobów w witrynie Azure Portal
W witrynie Azure Portal możesz wyświetlić zasoby utworzone podczas tworzenia klastra. Zazwyczaj te zasoby znajdują się w grupie zasobów rozpoczynającej się od MC_. Grupa zasobów klastra zarządzanego może mieć nazwę, taką jak MC_MyResourceGroup_MyManagedCluster_location-code>.< Jednak nazwa może być inna, jeśli utworzono klaster przy użyciu niestandardowej grupy zasobów klastra zarządzanego.
Aby znaleźć grupę zasobów, wyszukaj i wybierz pozycję Grupy zasobów w witrynie Azure Portal, a następnie wybierz grupę zasobów, w której utworzono klaster. Lista zasobów jest wyświetlana na stronie Przegląd grupy zasobów.
Ostrzeżenie
Zalecamy, aby nie modyfikować zasobów w grupie zasobów MC_ . Ta akcja może spowodować niepożądany wpływ na klaster usługi AKS.
Aby przejrzeć stan zestawu skalowania maszyn wirtualnych, możesz wybrać nazwę zestawu skalowania na liście zasobów grupy zasobów. Może mieć on nazwę podobną do aks-nodepool1-12345678-vmss i wartość typu zestawu skalowania maszyn wirtualnych. Stan zestawu skalowania jest wyświetlany w górnej części strony Przegląd puli węzłów, a więcej szczegółów znajduje się w nagłówku Podstawy. Jeśli wdrożenie nie powiodło się, wyświetlany stan to Niepowodzenie.
W przypadku wszystkich zasobów możesz przejrzeć szczegóły, aby lepiej zrozumieć, dlaczego wdrożenie nie powiodło się. W przypadku zestawu skalowania możesz wybrać tekst Stan niepowodzenie , aby wyświetlić szczegółowe informacje o awarii. Szczegóły znajdują się w wierszu zawierającym kolumny Stan, Poziom i Kod . W poniższym przykładzie przedstawiono wiersz wartości kolumn.
Kolumna | Przykładowa wartość |
---|---|
Stan | Inicjowanie obsługi administracyjnej nie powiodło się |
Poziom | Błąd |
Kod | ProvisioningState/failed/VMExtensionProvisioningError |
Wybierz wiersz, aby wyświetlić pole Komunikat . Zawiera jeszcze więcej informacji na temat tego błędu. Na przykład pole Komunikat dla przykładowego wiersza zaczyna się od następującego tekstu:
Maszyna wirtualna zgłosiła błąd podczas przetwarzania rozszerzenia "vmssCSE". Komunikat o błędzie: "Enable failed: failed to execute command: command terminated with exit status=50 [stdout] [stderr] 0 0 0 ---: Uzbrojony w te informacje, można stwierdzić, że maszyny wirtualne w zestawie skalowania nie powiodły się i wygenerował stan zakończenia 50.
Korzystanie z poleceń kubectl
Aby uzyskać kolejną opcję rozwiązywania problemów z błędami w klastrze, wprowadź polecenia kubectl, aby uzyskać szczegółowe informacje o zasobach wdrożonych w klastrze. Aby użyć narzędzia kubectl, najpierw zaloguj się do klastra usługi AKS:
az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster
W zależności od typu awarii i wystąpienia może nie być możliwe zalogowanie się do klastra w celu uzyskania dodatkowych szczegółów. Jeśli jednak klaster został utworzony i wyświetlony w witrynie Azure Portal, powinno być możliwe zalogowanie się i uruchomienie poleceń kubectl.
Wyświetlanie węzłów klastra (kubectl get nodes)
Aby uzyskać więcej szczegółów w celu określenia stanu węzłów, wyświetl węzły klastra, wprowadzając polecenie kubectl get nodes. W tym przykładzie w klastrze nie są raportowane żadne węzły:
$ kubectl get nodes
No resources found
Wyświetlanie zasobników w przestrzeni nazw systemu (kubectl get zasobników)
Wyświetlanie zasobników w przestrzeni nazw kube-system jest również dobrym sposobem rozwiązania problemu. Ta metoda umożliwia wyświetlenie stanu zasobników systemu Kubernetes. W tym przykładzie kubectl get pods
wprowadzamy polecenie:
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-845757d86-7xjqb 0/1 Pending 0 78m
coredns-autoscaler-5f85dc856b-mxkrj 0/1 Pending 0 77m
konnectivity-agent-67f7f5554f-nsw2g 0/1 Pending 0 77m
konnectivity-agent-8686cb54fd-xlsgk 0/1 Pending 0 65m
metrics-server-6bc97b47f7-dfhbr 0/1 Pending 0 77m
Opisywanie stanu zasobnika (kubectl describe pod)
Opisując stan zasobników, można wyświetlić szczegóły konfiguracji i wszelkie zdarzenia, które wystąpiły w zasobnikach. Uruchom polecenie kubectl describe pod:
$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name: coredns-845757d86-7xjqb
Namespace: kube-system
Priority: 2000001000
Priority Class Name: system-node-critical
Node: <none>
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
pod-template-hash=845757d86
version=v20
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 24m (x1 over 25m) default-scheduler no nodes available to schedule pods
Warning FailedScheduling 29m (x57 over 84m) default-scheduler no nodes available to schedule pods
W danych wyjściowych polecenia widać, że zasobnik nie może zostać wdrożony w węźle, ponieważ nie są dostępne żadne węzły.
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.