Podstawowe rozwiązywanie problemów z tworzeniem 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 utworzyć lub wdrożyć 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
Podczas tworzenia 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 polecenia, danych wejściowych użytkownika i danych wyjściowych operacji w konsoli powłoki Bash:
$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS
It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y
(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj
Code: ControlPlaneAddOnsNotReady
Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj
Te błędy często zawierają szczegółowe opisy tego, co poszło nie tak podczas tworzenia klastra i zawierają 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, który generuje operacja interfejsu wiersza polecenia platformy Azure.
Wyświetl szczegóły błędu w Azure Portal
Aby wyświetlić szczegółowe informacje o błędach w Azure Portal, przejrzyj dziennik aktywności platformy Azure. Aby znaleźć listę dzienników aktywności w Azure Portal, wyszukaj w dzienniku 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ę Utwórz lub zaktualizuj klaster zarządzany. Odpowiednia wartość zdarzenia zainicjowana przez kolumnę jest ustawiona na nazwę konta służbowego. Jeśli operacja zakończy się pomyślnie, wartość kolumny Stan będzie wyświetlana jako Zaakceptowane. Zostaną również wyświetlone wpisy podrzędne dotyczące tworzenia składników klastra, takie jak następujące nazwy operacji:
- Tworzenie lub aktualizowanie tabeli tras
- Tworzenie lub aktualizowanie sieciowej grupy zabezpieczeń
- Aktualizowanie tworzenia tożsamości przypisanej przez użytkownika
- Tworzenie lub aktualizowanie Load Balancer
- Tworzenie lub aktualizowanie publicznego adresu IP
- Tworzenie przypisania roli
- Aktualizowanie grupy zasobów
W tych wpisach podrzędnych wartość Stan to Powodzenie, a pole Zdarzenie zainicjowane przez jest ustawione na wartość AzureContainerService.
Co zrobić, jeśli zamiast tego wystąpił błąd? W takim przypadku w poluUtwórz lub Zaktualizuj stan operacji klastra zarządzanego jest wyświetlana wartość Niepowodzenie. W przeciwieństwie do operacji tworzenia składników klastra, w tym miejscu należy rozwinąć wpis operacji zakończonej niepowodzeniem, aby przejrzeć wpisy podrzędne. Typowe nazwy podrzędne to akcje zasad, takie jak akcja zasad "inspekcja" i akcja zasad "auditIfNotExists". Niektóre z podrzędnych operacji będą nadal pokazywać, że powiodły się.
Aby dokładniej zbadać problem, możesz wybrać jedną z nieudanych operacji podrzędnych. Zostanie otwarte okienko boczne, aby można było przejrzeć więcej informacji o podoperacji. Możesz rozwiązywać problemy z wartościami pól, takimi 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
Czy klaster został utworzony w Azure Portal i czy jest tam widoczny? Jeśli jest to prawda, możesz wygenerować szczegółowe informacje dotyczące klastra, które pomogą Ci rozwiązać problemy. Aby uzyskać dostęp do tej funkcji, wykonaj następujące kroki:
W 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 do analizy klastra analizuje klaster, a następnie udostępnia listę jego wyników w sekcji Obserwacje i rozwiązania na stronie usługi Cluster Insights .
Wybierz jedno z ustaleń, aby wyświetlić więcej informacji o problemie i jego możliwych rozwiązaniach.
Wyświetlanie zasobów w Azure Portal
W Azure Portal możesz wyświetlić zasoby utworzone podczas tworzenia klastra. Zazwyczaj te zasoby znajdują się w grupie zasobów, która rozpoczyna się w 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 klaster został utworzony przy użyciu niestandardowej grupy zasobów klastra zarządzanego.
Aby znaleźć grupę zasobów, wyszukaj i wybierz pozycję Grupy zasobów w 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 MC_ grupie zasobów. Ta akcja może spowodować niepożądane skutki dla klastra usługi AKS.
Aby przejrzeć stan zestawu skalowania maszyn wirtualnych, możesz wybrać nazwę zestawu skalowania na liście zasobów dla grupy zasobów. Może mieć nazwę podobną do aks-nodepool1-12345678-vmss i będzie mieć wartość Typzestawu 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 jest wyświetlanych w nagłówku Essentials. 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 niepowodzenia , aby wyświetlić szczegóły dotyczące 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 | Aprowizowanie nie powiodło się |
Poziom | Błąd |
Kod | ProvisioningState/failed/VMExtensionProvisioningError |
Wybierz wiersz, aby wyświetlić pole Komunikat . Zawiera to jeszcze więcej informacji na temat tego błędu. Na przykład pole Komunikat dla przykładowego wiersza rozpoczyna się w następującym tekście:
Maszyna wirtualna zgłosiła błąd podczas przetwarzania rozszerzenia "vmssCSE". Komunikat o błędzie: "Włączenie nie powiodło się: nie można wykonać polecenia: polecenie zakończone ze stanem zakończenia=50 [stdout] [stderr] 0 0 0 --:
Korzystając z tych informacji, można stwierdzić, że maszyny wirtualne w zestawie skalowania nie powiodły się i wygenerowały stan zakończenia 50.
Uwaga
Jeśli wdrożenie klastra nie dotarło do punktu, w którym te zasoby zostały utworzone, może nie być możliwe przejrzenie zarządzanej grupy zasobów klastra w Azure Portal.
Korzystanie z poleceń platformy Kubectl
Aby uzyskać inną 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 jego wystąpienia może nie być możliwe zalogowanie się do klastra w celu uzyskania dodatkowych szczegółów. Jednak ogólnie rzecz biorąc, jeśli klaster został utworzony i jest wyświetlany w Azure Portal, powinno być możliwe logowanie się i uruchamianie 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 żadne węzły nie zgłaszają się w klastrze:
$ kubectl get nodes
No resources found
Wyświetlanie zasobników w systemowej przestrzeni nazw (kubectl get pods)
Wyświetlanie zasobników w przestrzeni nazw kube-system jest również dobrym sposobem rozwiązania problemu. Ta metoda umożliwia wyświetlanie stanu zasobników systemu Kubernetes. W tym przykładzie wprowadzamy kubectl get pods
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
Opis stanu zasobnika (kubectl describe pod)
Opisując stan zasobników, można wyświetlić szczegóły konfiguracji i wszystkie zdarzenia, które wystąpiły na 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 platformy Azure.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla