Monitorowanie wdrożeń obciążeń
Ten artykuł jest częścią serii. Zacznij od omówienia.
Ważne jest, aby monitorować kondycję i wydajność obciążeń Platformy Kubernetes w celu zapewnienia optymalnego działania. Usługa Azure Kubernetes Service (AKS) ma kilka narzędzi, których można użyć do sprawdzania kondycji i wydajności wdrożeń, DaemonSet
funkcji i usług.
Narzędzia
Ważne jest, aby określić, czy wszystkie wdrożenia i DaemonSet
funkcje są uruchomione. W tym artykule opisano sposób określania, czy repliki w gotowych i dostępnych stanach są zgodne z oczekiwaną liczbą replik przy użyciu:
- witryny Azure Portal.
- Funkcja analizy kontenera usługi Azure Monitor.
- Narzędzie wiersza polecenia kubectl.
- Prometheus i Grafana.
Azure Portal
Możesz użyć witryny Azure Portal, aby zweryfikować kondycję następujących składników w obciążeniach. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do zasobów platformy Kubernetes w witrynie Azure Portal.
Wdrażanie, ReplicaSet
, StatefulSet
i DaemonSet
Sprawdź, czy liczba replik w stanie gotowości jest zgodna z liczbą żądanych replik. Portal pokazuje:
Liczba replik, które są obecnie dostępne i gotowe do obsługi ruchu. Te repliki zostały pomyślnie zaplanowane na węzły robocze, zakończyły proces uruchamiania i przeszły testy gotowości.
Żądana liczba replik określonych dla wdrożenia lub liczba replik, których celem jest wdrożenie. Kontroler wdrażania platformy Kubernetes stale monitoruje stan wdrożenia i zapewnia, że rzeczywista liczba replik jest zgodna z żądaną liczbą.
Usługi i ruch przychodzący
Upewnij się, że stan jest prawidłowy dla wszystkich usług i ruchu przychodzącego.
Storage
Upewnij się, że stan jest powiązany ze wszystkimi trwałymi oświadczeniami woluminów i woluminami trwałymi.
Analizy kontenerów
Usługa Container Insights to funkcja monitora , która zapewnia funkcje monitorowania dla obciążeń kontenerów wdrożonych w usłudze AKS lub zarządzanych przez platformę Kubernetes z obsługą usługi Azure Arc. Ta funkcja zbiera informacje o wydajności i kondycji, takie jak metryki pamięci i procesora z kontrolerów, węzłów i kontenerów. Przechwytuje również dzienniki kontenerów na potrzeby analizy.
Do analizowania zebranych danych można użyć różnych widoków i wstępnie utworzonych skoroszytów. Sprawdź wydajność i zachowanie różnych składników w klastrze. Korzystając ze szczegółowych informacji o kontenerach, możesz uzyskać szczegółowe informacje na temat ogólnego stanu obciążeń kontenera, dzięki czemu możesz podejmować świadome decyzje w celu zoptymalizowania ich wydajności i rozwiązywania problemów.
Szczegółowe informacje o kontenerach umożliwiają:
Zidentyfikuj wąskie gardła zasobów, identyfikując kontenery uruchamiane w każdym węźle oraz użycie procesora i pamięci.
Zidentyfikuj użycie procesora i pamięci grup kontenerów oraz ich kontenerów hostowanych w wystąpieniach kontenerów.
Wyświetl ogólną wydajność kontrolera lub zasobnika, identyfikując, gdzie kontener znajduje się w kontrolerze lub zasobniku.
Przejrzyj użycie zasobów obciążeń uruchamianych na hoście i nie ma związku ze standardowymi procesami obsługującymi zasobnik.
Zapoznaj się z zachowaniem klastra pod średnim i dużym obciążeniem, dzięki czemu można zidentyfikować potrzeby pojemności i określić maksymalne obciążenie klastra, które może utrzymać.
Uzyskaj dostęp do dzienników kontenerów na żywo i metryk generowanych przez aparat kontenerów, aby móc rozwiązywać problemy w czasie rzeczywistym.
Skonfiguruj alerty, aby proaktywnie powiadamiać użytkownika lub rejestrować, gdy użycie procesora CPU i pamięci w węzłach lub kontenerach przekracza progi, lub gdy w klastrze nastąpi zmiana stanu kondycji w zestawie kondycji infrastruktury lub węzłów.
W witrynie Azure Portal szczegółowe informacje o kontenerach udostępniają kilka narzędzi ułatwianych monitorowanie i analizowanie kondycji i wydajności klastra usługi AKS.
Klaster: ta funkcja zawiera omówienie klastra usługi AKS, w tym kluczowe metryki, takie jak użycie procesora CPU i pamięci, liczba zasobników i węzłów oraz ruch sieciowy. Możesz uzyskać wgląd w ogólną kondycję i użycie zasobów klastra.
Raporty: Ta funkcja udostępnia wstępnie utworzone raporty, których można użyć do wizualizacji i analizowania różnych aspektów wydajności klastra, takich jak użycie zasobów, kondycja zasobnika i szczegółowe informacje o kontenerze. Te dane pomagają zrozumieć zachowanie i wydajność kontenerów i obciążeń.
Węzły: ta funkcja zawiera szczegółowe informacje o węzłach w klastrze. Przedstawia metryki użycia procesora CPU i pamięci, operacji we/wy dysku i sieci oraz stan i stan każdego węzła. Te dane umożliwiają monitorowanie wydajności poszczególnych węzłów, identyfikowanie potencjalnych wąskich gardeł i zapewnianie wydajnej alokacji zasobów.
Kontrolery: ta funkcja zapewnia wgląd w kontrolery Kubernetes w klastrze usługi AKS. Przedstawia informacje, takie jak liczba wystąpień kontrolera, bieżący stan i stan operacji kontrolera. Możesz monitorować kondycję i wydajność kontrolerów, które zarządzają wdrożeniami obciążeń, usługami i innymi zasobami.
Kontenery: ta funkcja zapewnia wgląd w kontenery uruchamiane w klastrze usługi AKS. Zawiera informacje dotyczące użycia zasobów, ponownego uruchamiania i zdarzeń cyklu życia każdego kontenera. Te dane ułatwiają monitorowanie i rozwiązywanie problemów z kontenerami w obciążeniach.
Dzienniki na żywo: funkcja dzienników na żywo udostępnia strumień na żywo zdarzeń dziennika z uruchomionych kontenerów, dzięki czemu można wyświetlać dzienniki kontenerów w czasie rzeczywistym. Te dane umożliwiają efektywne monitorowanie i rozwiązywanie problemów z aplikacjami oraz szybkie identyfikowanie i rozwiązywanie problemów w kontenerach.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
- Monitorowanie wydajności klastra Kubernetes za pomocą szczegółowych informacji o kontenerze
- Konfigurowanie monitorowania procesora GPU za pomocą szczegółowych informacji o kontenerze
- Monitorowanie i wizualizowanie konfiguracji sieci za pomocą menedżera zasad sieci platformy Azure
- Monitorowanie wdrożeń i metryk HPA za pomocą szczegółowych informacji o kontenerze
- Monitorowanie metryk trwałego woluminu (PV)
- Monitorowanie zabezpieczeń za pomocą dziennika systemowego
- Raporty w usłudze Container Insights
- Metryki zbierane przez szczegółowe informacje o kontenerze
- Wyświetlanie dzienników, zdarzeń i metryk zasobników platformy Kubernetes w czasie rzeczywistym
- Wyświetlanie metryk klastra w czasie rzeczywistym
Narzędzie wiersza polecenia
Aby sprawdzić stan obciążeń, możesz użyć narzędzia wiersza polecenia kubectl do komunikowania się z płaszczyzną sterowania klastra Kubernetes za pośrednictwem interfejsu API kubernetes.
Zasobniki
Aby wyświetlić listę zasobników uruchomionych we wszystkich przestrzeniach nazw, uruchom następujące polecenie:
kubectl get pod -A
W danych wyjściowych polecenia kolumna READY zawiera ważne informacje o stanie gotowości kontenerów zasobnika.
Pierwsza liczba oznacza liczbę kontenerów, które są obecnie w stanie gotowości . Te kontenery przeszły sondy gotowości i są przygotowane do obsługi ruchu przychodzącego. Druga liczba reprezentuje łączną liczbę kontenerów zdefiniowanych w zasobniku, niezależnie od stanu gotowości. Obejmuje ona kontenery, które są gotowe, a te, które są nadal inicjowane lub występują problemy.
Upewnij się, że pierwsza liczba (gotowe kontenery) jest zgodna z drugą liczbą (łączną liczbą kontenerów) dla zasobnika. Jeśli się różnią, niektóre kontenery mogą nie być gotowe lub mogą wystąpić problemy uniemożliwiające im osiągnięcie stanu gotowości .
Wdrażanie, StatefulSet
, DaemonSet
i StatefulSet
Uruchom następujące polecenie, aby pobrać wdrożenia we wszystkich przestrzeniach nazw:
kubectl get deploy -A
W danych wyjściowych kubectl get deploy
polecenia liczby w kolumnie READY wskazują bieżący stan gotowości replik we wdrożeniu.
Pierwsza liczba reprezentuje liczbę replik, które są gotowe i dostępne do obsługi ruchu. Te repliki zostały pomyślnie uruchomione i przeszły testy gotowości. Druga liczba reprezentuje żądaną liczbę replik określonych w konfiguracji wdrożenia. Jest to docelowa liczba replik, których celem jest utrzymanie wdrożenia.
Należy upewnić się, że pierwsza liczba jest zgodna z drugą liczbą. Wskazuje, że żądana liczba replik jest uruchomiona i gotowa. Wszelkie rozbieżności między dwiema liczbami mogą wskazywać na problemy ze skalowaniem lub gotowością, które należy rozwiązać.
Uruchom następujące polecenie, aby pobrać funkcje StatefulSet we wszystkich przestrzeniach nazw:
kubectl get statefulset -A
Uruchom następujące polecenie, aby pobrać funkcje daemonSet we wszystkich przestrzeniach nazw:
kubectl get ds -A
Możesz uruchomić polecenie , kubectl get ds
aby sprawdzić, czy element DaemonSet
działa zgodnie z oczekiwaniami. Możesz na przykład uruchomić następujące polecenie, aby sprawdzić, czy agent usługi Container Insights został pomyślnie wdrożony:
kubectl get ds ama-logs --namespace=kube-system
Podobnie jeśli skonfigurujesz klaster usługi AKS w celu zbierania metryk rozwiązania Prometheus w monitorze dla zarządzanego rozwiązania Prometheus, możesz uruchomić następujące polecenie, aby sprawdzić, czy DaemonSet
klaster został prawidłowo wdrożony w pulach węzłów systemu Linux:
kubectl get ds ama-metrics-node --namespace=kube-system
Te dane wyjściowe zawierają informacje o funkcjach DaemonSet
w klastrze. Sprawdź dane wyjściowe, aby upewnić się, że liczba zasobników w gotowych, bieżących i żądanych stanach jest taka sama. Jeśli są one takie same, żądana liczba zasobników określonych w DaemonSet
konfiguracji jest równa liczbie zasobników, które są aktualnie uruchomione i gotowe.
Zalecamy wykonanie tego samego sprawdzenia funkcji ReplicaSet . Aby pobrać ReplicaSet
funkcje we wszystkich przestrzeniach nazw, możesz użyć następującego polecenia:
kubectl get rs -A
Upewnij się, że liczby w tych danych wyjściowych są takie same dla każdego stanu, aby docelowa liczba zasobników lub replik były uruchomione zgodnie z oczekiwaniami. Rozbieżności mogą wskazywać na potrzebę dalszego badania lub rozwiązywania problemów przy użyciu jednego z następujących poleceń.
kubectl describe: Możesz użyć polecenia kubectl describe , aby uzyskać szczegółowe informacje o zasobach kubernetes, takich jak zasobniki, wdrożenia i usługi. Możesz uzyskać kompleksowy przegląd określonego zasobu, w tym jego bieżący stan, zdarzenia, warunki i powiązane metadane. Informacje są pobierane z serwera interfejsu API Kubernetes. To polecenie jest przydatne do rozwiązywania problemów i zrozumienia stanu zasobu.
Możesz uruchomić polecenie kubectl describe pod <pod-name>
, aby uzyskać szczegółowe informacje na temat określonego zasobnika, w tym jego bieżącego stanu, zdarzeń, etykiet i skojarzonych z nim kontenerów. Dane wyjściowe zawierają informacje, takie jak stan zasobnika, zdarzenia, woluminy i warunki.
dzienniki kubectl: możesz użyć polecenia kubectl logs, aby pobrać dzienniki generowane przez kontener w zasobniku. To polecenie jest przydatne do debugowania i rozwiązywania problemów. Dzienniki można wyświetlać w czasie rzeczywistym lub pobierać dzienniki historyczne z kontenera.
Aby wyświetlić dzienniki kontenerów, możesz użyć polecenia kubectl logs <pod-name> -c <container-name>
. Zastąp <pod-name>
ciąg nazwą zasobnika. Zastąp <container-name>
ciąg nazwą kontenera, z którego chcesz pobrać dzienniki. Jeśli w zasobniku znajduje się tylko jeden kontener, nie musisz określać nazwy kontenera. Możesz również użyć flagi -f
z kubectl logs
, aby śledzić dzienniki w czasie rzeczywistym. Ta flaga jest podobna do polecenia systemu tail -f
Linux.
zdarzenia kubectl: możesz użyć polecenia kubectl events do rozwiązywania problemów, gdy wdrożenie, DaemonSet
, ReplicaSet
lub zasobnik nie uruchamia się lub napotyka problem podczas uruchamiania. To polecenie udostępnia chronologiczną listę zdarzeń skojarzonych z określonym zasobem. Możesz uzyskać szczegółowe informacje na temat przyczyn problemu.
Aby użyć kubectl events
polecenia , możesz uruchomić polecenie kubectl events
, a następnie określoną nazwę zasobu. Możesz też użyć selektorów do filtrowania zdarzeń na podstawie etykiet, przestrzeni nazw lub innych kryteriów.
Aby na przykład pobrać zdarzenia związane z określonym zasobnikiem, można uruchomić polecenie kubectl events --field-selector involvedObject.name=<pod-name> --field-selector involvedObject.kind=Pod
. Zastąp <pod-name>
ciąg nazwą zasobnika, który chcesz zbadać. Dane wyjściowe kubectl events
polecenia wyświetla informacje, takie jak typ zdarzenia (normalny lub ostrzeżenie), komunikat zdarzenia, przyczyna zdarzenia i sygnatura czasowa wystąpienia zdarzenia. Możesz użyć tych informacji, aby określić przyczynę niepowodzenia lub problemu podczas uruchamiania.
Jeśli podejrzewasz, że określony zasób, taki jak wdrożenie, lub ReplicaSet
ma problemy, DaemonSet
możesz filtrować zdarzenia przy użyciu selektorów. Na przykład kubectl events --field-selector involvedObject.name=<deployment-name> --field-selector involvedObject.kind=Deployment
pokazuje zdarzenia związane z konkretnym wdrożeniem. Sprawdź zdarzenia, aby można było zebrać ważne szczegóły dotyczące potencjalnych błędów, awarii lub innych zdarzeń, które mogły uniemożliwić prawidłowe uruchamianie zasobu. Te dane ułatwiają rozwiązywanie problemów, które mają wpływ na zasób.
Monitorowanie w klastrze za pomocą rozwiązań Prometheus i Grafana
Jeśli wdrożysz rozwiązanie Prometheus i Grafana w klastrze usługi AKS, możesz użyć pulpitu nawigacyjnego szczegółów klastra K8, aby uzyskać szczegółowe informacje. Ten pulpit nawigacyjny przedstawia informacje zebrane z metryk klastra Prometheus, takich jak użycie procesora CPU i pamięci, aktywność sieci i użycie systemu plików. Przedstawia również szczegółowe statystyki poszczególnych zasobników, kontenerów i usług systemowych .
Aby zapewnić kondycję i wydajność wdrożeń, zadań, zasobników i kontenerów, możesz użyć funkcji na pulpicie nawigacyjnym. Wybierz pozycję Wdrożenia , aby wyświetlić liczbę replik dla każdego wdrożenia i łączną liczbę replik. Wybierz pozycję Kontenery , aby wyświetlić wykres przedstawiający uruchomione, oczekujące, zakończone niepowodzeniem i zakończone powodzeniem kontenery.
Monitorowanie usługi zarządzanej dla rozwiązań Prometheus i Azure Managed Grafana
Do wizualizacji i analizowania metryk rozwiązania Prometheus można użyć wstępnie utworzonych pulpitów nawigacyjnych. W tym celu należy skonfigurować klaster usługi AKS w celu zbierania metryk rozwiązania Prometheus w usłudze zarządzanej Monitor dla rozwiązania Prometheus i połączyć obszar roboczy Monitor z obszarem roboczym usługi Azure Managed Grafana .
Zainstaluj wstępnie utworzone pulpity nawigacyjne, aby uzyskać kompleksowy widok wydajności i kondycji klastra Kubernetes. Aby uzyskać szczegółowe instrukcje instalacji, zobacz Rozwiązanie Prometheus monitoring mixin for Kubernetes. Pulpity nawigacyjne są aprowidowane w określonym wystąpieniu usługi Azure Managed Grafana w folderze Managed Prometheus . Niektóre pulpity nawigacyjne obejmują:
- Kubernetes / Zasoby obliczeniowe / Klaster
- Kubernetes / Zasoby obliczeniowe / przestrzeń nazw (zasobniki)
- Kubernetes / Zasoby obliczeniowe / Węzeł (zasobniki)
- Kubernetes / Zasoby obliczeniowe / Zasobnik
- Kubernetes / Zasoby obliczeniowe / przestrzeń nazw (obciążenia)
- Kubernetes / Zasoby obliczeniowe / Obciążenie
- Kubernetes / Kubelet
- Eksporter węzła / METODA USE / Node
- Eksporter węzłów/węzły
- Kubernetes / Zasoby obliczeniowe / Klaster (Windows)
- Kubernetes / Zasoby obliczeniowe / przestrzeń nazw (Windows)
- Kubernetes / Zasoby obliczeniowe / Zasobnik (Windows)
- Kubernetes / USE, metoda / klaster (Windows)
- Kubernetes / USE, metoda / Node (Windows)
Te wbudowane pulpity nawigacyjne są szeroko używane w społeczności open source do monitorowania klastrów Kubernetes za pomocą rozwiązania Prometheus i Grafana. Użyj tych pulpitów nawigacyjnych, aby wyświetlić metryki, takie jak użycie zasobów, kondycja zasobnika i aktywność sieci. Możesz również tworzyć niestandardowe pulpity nawigacyjne dostosowane do potrzeb monitorowania. Pulpity nawigacyjne ułatwiają efektywne monitorowanie i analizowanie metryk rozwiązania Prometheus w klastrze usługi AKS, co umożliwia optymalizowanie wydajności, rozwiązywanie problemów i zapewnienie bezproblemowego działania obciążeń Kubernetes.
Aby wyświetlić metryki dla węzłów agenta systemu Linux, możesz użyć pulpitu nawigacyjnego Kubernetes/Compute Resources/Node (Zasobniki obliczeniowe ). Możesz wizualizować użycie procesora CPU, limit przydziału procesora CPU, użycie pamięci i limit przydziału pamięci dla każdego zasobnika.
Pulpit nawigacyjny Kubernetes/ Zasoby obliczeniowe/ Zasobnik Grafana zawiera szczegółowe informacje o użyciu zasobów i metrykach wydajności wybranego klastra, przestrzeni nazw i zasobnika. Za pomocą tego pulpitu nawigacyjnego można uzyskać metryki związane z użyciem procesora CPU, ograniczaniem procesora CPU, limitem przydziału procesora CPU, użyciem pamięci, limitem przydziału pamięci, metrykami sieci i metrykami magazynu. Na pulpicie nawigacyjnym wybierz klaster usługi AKS, przestrzeń nazw i zasobnik w wybranej przestrzeni nazw, aby wyświetlić następujące szczegóły:
Użycie procesora CPU: na tym wykresie przedstawiono użycie procesora CPU w czasie dla wybranego zasobnika. Możesz przejrzeć wzorzec użycia procesora CPU i zidentyfikować potencjalne wzrosty lub nieprawidłowości.
Ograniczanie procesora CPU: ten wykres zapewnia wgląd w ograniczanie procesora CPU, co występuje, gdy zasobnik przekracza limity zasobów procesora CPU. Monitoruj tę metrykę, aby ułatwić identyfikowanie obszarów, w których wydajność zasobnika jest ograniczona z powodu ograniczania procesora CPU.
Limit przydziału procesora CPU: na tym wykresie przedstawiono przydzielony limit przydziału procesora CPU dla wybranego zasobnika. Jeśli zasobnik przekroczy przypisany limit przydziału procesora CPU, może wymagać korekt zasobów.
Użycie pamięci: ten wykres przedstawia użycie pamięci wybranego zasobnika. Monitoruj wzorzec zużycia pamięci i zidentyfikuj wszelkie problemy związane z pamięcią.
Limit przydziału pamięci: na tym wykresie jest wyświetlany przydział przydzielonej pamięci dla zasobnika. Jeśli zasobnik przekroczy przypisany limit przydziału pamięci, może to wskazywać na potrzebę optymalizacji zasobów.
Metryki sieci: te wykresy pokazują odebraną i przesłaną przepustowość oraz szybkość odebranych i przesyłanych pakietów. Te metryki ułatwiają monitorowanie użycia sieci i wykrywanie potencjalnych wąskich gardeł sieci lub anomalii.
Metryki magazynu: ta sekcja zawiera informacje o metrykach związanych z magazynem, takich jak operacje we/wy na sekundę (IOPS) i przepływność. Monitoruj te metryki, aby ułatwić ocenę wydajności i wydajności magazynu zasobników.
Możesz użyć pulpitu nawigacyjnego Kubernetes/Compute Resources/Pod Grafana, aby uzyskać szczegółowe informacje o użyciu zasobów, wydajności i zachowaniu zasobników w klastrze Kubernetes. Te informacje służą do optymalizowania alokacji zasobów, rozwiązywania problemów z wydajnością i podejmowania świadomych decyzji w celu zapewnienia bezproblemowego działania konteneryzowanych obciążeń.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Paolo Salvatori | Główny inżynier klienta
Inni współautorzy:
- Kevin Harris | Główny specjalista ds. rozwiązań
- Franciszek Simy FrancisZki | Starszy specjalista techniczny
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.