Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak używać zdarzeń kubernetes do monitorowania i rozwiązywania problemów w klastrach usługi Azure Kubernetes Service (AKS).
Co to są zdarzenia Kubernetes?
Zdarzenia są jednym z najbardziej istotnych źródeł monitorowania i rozwiązywania problemów w Kubernetes. Przechwytują i rejestrują informacje o cyklu życia różnych obiektów Kubernetes, takich jak zasobniki, węzły, usługi i wdrożenia. Monitorując zdarzenia, można uzyskać wgląd w działania klastra, identyfikować problemy i skutecznie rozwiązywać problemy.
Zdarzenia Kubernetes nie są zachowywane w całym cyklu życia klastra, ponieważ nie istnieje mechanizm ich przechowywania. Zdarzenia są dostępne tylko przez jedną godzinę po wygenerowaniu zdarzenia. Aby przechowywać zdarzenia przez dłuższy czas, włącz usługę Container Insights.
Obiekty zdarzeń Kubernetes
W poniższej tabeli wymieniono niektóre kluczowe obiekty zdarzeń Kubernetes:
Nazwa pola | Opis |
---|---|
typ | Typ jest oparty na ważności zdarzenia: Zdarzenia ostrzegawcze sygnalizują potencjalnie problematyczne sytuacje, takie jak wielokrotne niepowodzenie podu lub brak zasobów węzła. Wymagają one uwagi, ale mogą nie spowodować natychmiastowego niepowodzenia. Zdarzenia normalne reprezentują rutynowe operacje, takie jak zaplanowany zasobnik lub skalowanie wdrożenia w górę. Zwykle wskazują zdrowe zachowanie klastra. |
powód | Przyczyna wygenerowania zdarzenia. Na przykład FailedScheduling lub CrashLoopBackoff. |
komunikat | Czytelny dla człowieka komunikat opisujący zdarzenie. |
obszar nazw | Przestrzeń nazw obiektu Kubernetes, z którą jest skojarzone zdarzenie. |
firstSeen | Sygnatura czasowa, kiedy zdarzenie zostało zaobserwowane po raz pierwszy. |
lastSeen | Sygnatura czasowa ostatniego zaobserwowanego zdarzenia. |
Kontroler Raportowania | Nazwa kontrolera, który zgłosił zdarzenie. Na przykład kubernetes.io/kubelet . |
obiekt | Nazwa obiektu Kubernetes skojarzonego ze zdarzeniem. |
Aby uzyskać więcej informacji, zobacz oficjalną dokumentację platformy Kubernetes.
Wyświetlanie zdarzeń platformy Kubernetes
Wyświetl listę wszystkich zdarzeń w klastrze przy użyciu kubectl get events
polecenia .
Zakładając, że klaster jest już utworzony i dostępny (zgodnie z wymaganiami wstępnymi dokumentu), pobierz dane uwierzytelniające (zauważ, że flaga --overwrite-existing
jest ustawiona, aby uniknąć błędów narzędzia kubeconfig):
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Teraz wyświetl listę wszystkich zdarzeń w klastrze:
kubectl get events
Wyniki:
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Przyjrzyj się zdarzeń określonego zasobnika, wyszukując najpierw nazwę zasobnika, a następnie używając kubectl describe pod
polecenia .
Wyświetl listę podów w bieżącej przestrzeni nazw:
kubectl get pods
Wyniki:
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Zastąp <pod-name>
poniżej rzeczywistą nazwą zasobnika. W przypadku automatyzacji oto przykład pierwszego poda na liście:
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Najlepsze praktyki dotyczące rozwiązywania problemów ze zdarzeniami
Filtrowanie zdarzeń pod kątem istotności
W klastrze AKS może działać wiele różnych przestrzeni nazw i usług. Filtrowanie zdarzeń na podstawie typu obiektu, przestrzeni nazw lub przyczyny może pomóc zawęzić wyniki do najbardziej odpowiednich informacji.
Możesz na przykład użyć następującego polecenia, aby filtrować zdarzenia w domyślnej przestrzeni nazw:
kubectl get events --namespace default
Automatyzowanie powiadomień o zdarzeniach
Aby zapewnić terminową reakcję na zdarzenia krytyczne w klastrze usługi AKS, skonfiguruj automatyczne powiadomienia. Platforma Azure oferuje integrację z usługami monitorowania i alertów, takimi jak Azure Monitor. Alerty można skonfigurować do wyzwalania na podstawie określonych wzorców zdarzeń. Dzięki temu jesteś natychmiast informowany o kluczowych kwestiach, które wymagają uwagi.
Regularne przeglądanie zdarzeń
Wyrób sobie nawyk regularnego przeglądania zdarzeń w klastrze AKS. Takie proaktywne podejście może pomóc zidentyfikować trendy, wcześnie złapać potencjalne problemy i zapobiec eskalacjom. Pozostając na bieżąco ze zdarzeniami, można zachować stabilność i wydajność aplikacji.
Dalsze kroki
Po zapoznaniu się ze zdarzeniami platformy Kubernetes możesz kontynuować proces monitorowania i obserwacji, włączając szczegółowe informacje o kontenerze.
Azure Kubernetes Service