Monitorowanie metryk płaszczyzny sterowania usługi Azure Kubernetes Service (AKS) (wersja zapoznawcza)

Kondycja płaszczyzny sterowania usługi Azure Kubernetes Service (AKS) ma kluczowe znaczenie dla wydajności i niezawodności klastra. Metryki płaszczyzny sterowania (wersja zapoznawcza) zapewniają lepszy wgląd w jego dostępność i wydajność, co pozwala zmaksymalizować ogólną widoczność i utrzymać doskonałość operacyjną. Te metryki są w pełni zgodne z rozwiązaniami Prometheus i Grafana i można je dostosować tak, aby przechowywać tylko to, co należy wziąć pod uwagę. Dzięki tym nowym metrykom można zbierać wszystkie metryki z serwera interfejsu API, ETCD, Scheduler, Autoscaler i menedżera kontrolera.

Ten artykuł pomaga zrozumieć tę nową funkcję, jak ją zaimplementować i jak obserwować zebrane dane telemetryczne.

Wymagania wstępne i ograniczenia

Instalowanie lub aktualizowanie rozszerzenia interfejsu wiersza polecenia platformy aks-preview Azure

Ważne

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

Zainstaluj rozszerzenie interfejsu wiersza polecenia platformy aks-previewaz extension add Azure przy użyciu polecenia .

az extension add --name aks-preview

Jeśli musisz zaktualizować wersję rozszerzenia, możesz to zrobić za pomocą az extension update polecenia .

az extension update --name aks-preview

Rejestrowanie flagi funkcji "AzureMonitorMetricsControlPlanePreview"

Zarejestruj flagę AzureMonitorMetricsControlPlanePreview funkcji przy użyciu polecenia az feature register , jak pokazano w poniższym przykładzie:

az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Wyświetlenie stanu Zarejestrowane trwa kilka minut. Sprawdź stan rejestracji przy użyciu polecenia az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Gdy stan będzie odzwierciedlał wartość Zarejestrowano, odśwież rejestrację dostawcy zasobów Microsoft.ContainerService , używając polecenia az provider register :

az provider register --namespace "Microsoft.ContainerService"

Włączanie metryk płaszczyzny sterowania w klastrze usługi AKS

Metryki płaszczyzny sterowania można włączyć za pomocą usługi zarządzanej Azure Monitor dla dodatku Prometheus podczas tworzenia klastra lub dla istniejącego klastra. Aby zebrać metryki rozwiązania Prometheus z klastra Kubernetes, zobacz Włączanie klastrów Prometheus i Grafana dla klastrów Kubernetes i wykonaj kroki na karcie interfejsu wiersza polecenia dla klastra usługi AKS. W wierszu polecenia pamiętaj, aby uwzględnić parametry --generate-ssh-keys i --enable-managed-identity.

Jeśli klaster ma już wdrożony dodatek Prometheus, możesz po prostu uruchomić polecenie , az aks update aby zapewnić aktualizacje klastra w celu rozpoczęcia zbierania metryk płaszczyzny sterowania.

az aks update -n <cluster-name> -g <resource-group>

Uwaga

W przeciwieństwie do metryk zebranych z węzłów klastra metryki płaszczyzny sterowania są zbierane przez składnik, który nie jest częścią dodatku ama-metrics . Włączenie AzureMonitorMetricsControlPlanePreview flagi funkcji i zarządzanego dodatku prometheus zapewnia zbieranie metryk płaszczyzny sterowania. Po włączeniu zbierania metryk może upłynąć kilka minut, aby dane pojawiły się w obszarze roboczym.

Wykonywanie zapytań względem metryk płaszczyzny sterowania

Metryki płaszczyzny sterowania są przechowywane w obszarze roboczym usługi Azure Monitor w regionie klastra. Można wykonywać zapytania bezpośrednio z obszaru roboczego lub za pośrednictwem wystąpienia usługi Azure Managed Grafana połączonego z obszarem roboczym. Aby znaleźć obszar roboczy usługi Azure Monitor skojarzony z klastrem, w okienku po lewej stronie wybranego klastra usługi AKS przejdź do sekcji Monitorowanie i wybierz pozycję Szczegółowe informacje. Na stronie Kontener Szczegółowe informacje klastra wybierz pozycję Monitoruj Ustawienia.

Zrzut ekranu przedstawiający obszar roboczy usługi Azure Monitor.

Jeśli używasz narzędzia Azure Managed Grafana do wizualizacji danych, możesz zaimportować następujące pulpity nawigacyjne. Usługa AKS udostępnia szablony pulpitów nawigacyjnych, które ułatwiają wyświetlanie i analizowanie danych telemetrycznych płaszczyzny sterowania w czasie rzeczywistym.

Dostosowywanie metryk płaszczyzny sterowania

Domyślnie zestaw AKs zawiera wstępnie skonfigurowany zestaw metryk do zbierania i przechowywania dla każdego składnika. API server i etcd są domyślnie włączone. Tę listę można dostosować za pomocą mapy ama-settings-configmap. Lista minimal-ingestion metryk profilu jest dostępna tutaj.

Poniżej wymieniono domyślne elementy docelowe:

controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true

Różne opcje są podobne do usługi Azure Managed Prometheus wymienionych tutaj.

Wszystkie konfiguracje Mapy należy zastosować do kube-system przestrzeni nazw dla dowolnego klastra.

Pozyskiwanie tylko minimalnych metryk dla domyślnych miejsc docelowych

Jest to zachowanie domyślne z ustawieniem default-targets-metrics-keep-list.minimalIngestionProfile="true". Tylko metryki wymienione w dalszej części tego artykułu są pozyskiwane dla każdego z domyślnych obiektów docelowych, które w tym przypadku to controlplane-apiserver i controlplane-etcd.

Pozyskiwanie wszystkich metryk ze wszystkich miejsc docelowych

Wykonaj następujące kroki, aby zebrać wszystkie metryki ze wszystkich obiektów docelowych w klastrze.

  1. Pobierz plik ConfigMap ama-metrics-settings-configmap.yaml i zmień jego nazwę na configmap-controlplane.yaml.

  2. Ustaw minimalingestionprofile = false i zweryfikuj cele w obszarze default-scrape-settings-enabled , w którym chcesz zeskrobać, ustawiono wartość true. Jedynymi miejscami docelowymi, które można określić, są: controlplane-apiserver, , controlplane-cluster-autoscalercontrolplane-kube-scheduler, controlplane-kube-controller-manageri controlplane-etcd.

  3. Zastosuj ConfigMap, uruchamiając polecenie kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    Po zastosowaniu konfiguracji może upłynąć kilka minut, zanim metryki z określonych obiektów docelowych zostaną zeskromione z płaszczyzny sterowania w obszarze roboczym usługi Azure Monitor.

Pozyskiwanie kilku innych metryk oprócz minimalnych metryk

Minimal ingestion profile to ustawienie, które pomaga zmniejszyć ilość metryk pozyskiwania, ponieważ zbierane są tylko metryki używane domyślnie na pulpitach nawigacyjnych, zbierane są domyślne reguły rejestrowania i alerty domyślne. Wykonaj następujące kroki, aby dostosować to zachowanie.

  1. Pobierz plik ConfigMap ama-metrics-settings-configmap i zmień jego nazwę na configmap-controlplane.yaml.

  2. Ustaw minimalingestionprofile = true i zweryfikuj obiekty docelowe, w których default-scrape-settings-enabled chcesz zeskrobać, są ustawione na true. Jedynymi miejscami docelowymi, które można określić, są: controlplane-apiserver, , controlplane-cluster-autoscalercontrolplane-kube-scheduler, controlplane-kube-controller-manageri controlplane-etcd.

  3. W obszarze default-targets-metrics-keep-listokreśl listę metryk dla true celów. Przykład:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Zastosuj ConfigMap, uruchamiając polecenie kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    Po zastosowaniu konfiguracji może upłynąć kilka minut, zanim metryki z określonych obiektów docelowych zostaną zeskromione z płaszczyzny sterowania w obszarze roboczym usługi Azure Monitor.

Pozyskiwanie tylko określonych metryk z niektórych miejsc docelowych

  1. Pobierz plik ConfigMap ama-metrics-settings-configmap i zmień jego nazwę na configmap-controlplane.yaml.

  2. Ustaw minimalingestionprofile = false i zweryfikuj obiekty docelowe, w których default-scrape-settings-enabled chcesz zeskrobać, są ustawione na true. Jedynymi miejscami docelowymi, które można określić w tym miejscu, są controlplane-apiserver: , controlplane-cluster-autoscaler, controlplane-kube-scheduler,controlplane-kube-controller-manager i controlplane-etcd.

  3. W obszarze default-targets-metrics-keep-listokreśl listę metryk dla true celów. Przykład:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Zastosuj ConfigMap, uruchamiając polecenie kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    Po zastosowaniu konfiguracji może upłynąć kilka minut, zanim metryki z określonych obiektów docelowych zostaną zeskromione z płaszczyzny sterowania w obszarze roboczym usługi Azure Monitor.

Rozwiązywanie problemów z metrykami płaszczyzny sterowania

Upewnij się, że flaga AzureMonitorMetricsControlPlanePreview funkcji jest włączona, a ama-metrics zasobniki są uruchomione.

Uwaga

Metody rozwiązywania problemów z usługą zarządzaną platformy Azure Prometheus nie zostaną przetłumaczone bezpośrednio, ponieważ składniki złomujące płaszczyznę sterowania nie są obecne w zarządzanym dodatku prometheus.

Formatowanie lub błędy ConfigMap

Pamiętaj, aby dokładnie sprawdzić formatowanie obiektu ConfigMap, a jeśli pola są poprawnie wypełnione zamierzonymi wartościami. W szczególności , default-targets-metrics-keep-listminimal-ingestion-profilei default-scrape-settings-enabled.

Problem z izolowanie płaszczyzny sterowania z płaszczyzny danych

Zacznij od ustawienia niektórych metryktrue powiązanych z węzłem i sprawdź, czy metryki są przekazywane do obszaru roboczego. Pomaga to określić, czy problem jest specyficzny dla metryk płaszczyzny kontroli.

Pozyskane zdarzenia

Po zastosowaniu zmian możesz otworzyć Eksploratora metryk na stronie przeglądu usługi Azure Monitor lub w sekcji Monitorowanie wybranego klastra. W witrynie Azure Portal wybierz pozycję Metryki. Sprawdź wzrost lub spadek liczby zdarzeń pozyskanych na minutę. Powinno to pomóc w ustaleniu, czy brakuje określonej metryki, czy brakuje wszystkich metryk.

Określona metryka nie jest uwidoczniona

Wystąpiły przypadki, w których metryki są udokumentowane, ale nie zostały ujawnione z miejsca docelowego i nie zostały przekazane do obszaru roboczego usługi Azure Monitor. W takim przypadku należy sprawdzić, czy inne metryki są przekazywane do obszaru roboczego.

Brak dostępu do obszaru roboczego usługi Azure Monitor

Po włączeniu dodatku możesz określić istniejący obszar roboczy, do którego nie masz dostępu. W takim przypadku może się wydawać, że metryki nie są zbierane i przekazywane. Upewnij się, że utworzono nowy obszar roboczy podczas włączania dodatku lub podczas tworzenia klastra.

Wyłączanie metryk płaszczyzny sterowania w klastrze usługi AKS

Metryki płaszczyzny sterowania można wyłączyć w dowolnym momencie, wyłączając flagę funkcji, wyłączając zarządzany prometheus lub usuwając klaster usługi AKS.

Flaga wersji zapoznawczej włączona po skonfigurowaniu zarządzanego rozwiązania Prometheus

Jeśli flaga (AzureMonitorMetricsControlPlanePreview) w wersji zapoznawczej została włączona w istniejącym zarządzanym klastrze Prometheus, będzie wymagać wymuszenia aktualizacji dla klastra w celu emitowania metryk płaszczyzny sterowania

Możesz uruchomić polecenie az aks update, aby upewnić się, że aktualizacje klastra umożliwiają rozpoczęcie zbierania metryk płaszczyzny sterowania.

az aks update -n <cluster-name> -g <resource-group>

Uwaga

Ta akcja nie powoduje usunięcia żadnych istniejących danych przechowywanych w obszarze roboczym usługi Azure Monitor.

Uruchom następujące polecenie, aby usunąć dodatek metryk, który złomuje metryki Prometheus.

az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>

Uruchom następujące polecenie, aby wyłączyć usuwanie metryk płaszczyzny sterowania w klastrze usługi AKS przez wyrejestrowanie AzureMonitorMetricsControlPlanePreview flagi funkcji przy użyciu polecenia az feature unregister .

az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Często zadawane pytania

  • Czy te metryki można zeskrobać z własnym prometheusem?

    • Obecnie nie można złomować metryk płaszczyzny sterowania z własnym prometheusem. Self hosted prometheus będzie mógł zeskrobać pojedyncze wystąpienie w zależności od modułu równoważenia obciążenia. Te metryki nie są cykliczne, ponieważ często istnieje wiele replik metryk płaszczyzny sterowania, które będą widoczne tylko za pomocą zarządzanego rozwiązania Prometheus
  • Dlaczego agent użytkownika nie jest dostępny za pośrednictwem metryk płaszczyzny sterowania?

Następne kroki

Po dokonaniu oceny tej funkcji w wersji zapoznawczej podziel się swoją opinią. Jesteśmy zainteresowani wysłuchaniem tego, co myślisz.