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 opisano sposób włączania pełnego monitorowania klastrów Kubernetes przy użyciu następujących funkcji usługi Azure Monitor:
- Zarządzany Prometheus do zbierania metryk
- Szczegółowe informacje o kontenerze na potrzeby zbierania dzienników
- Zarządzana Grafana na potrzeby wizualizacji.
Za pomocą witryny Azure Portal można jednocześnie włączyć wszystkie funkcje. Można je również włączyć indywidualnie przy użyciu interfejsu wiersza polecenia platformy Azure, szablonu usługi Azure Resource Manager, narzędzia Terraform lub usługi Azure Policy. Każda z tych metod została opisana w tym artykule.
Ważne
Klastry Kubernetes generują wiele dzienników, co może spowodować znaczne koszty, jeśli nie będziesz wybierać dzienników do zbierania selektywnie. Przed włączeniem monitorowania klastra zapoznaj się z następującymi artykułami, aby upewnić się, że środowisko jest zoptymalizowane pod kątem kosztów i że ograniczysz zbieranie dzienników tylko do potrzebnych danych:
-
Konfigurowanie zbierania danych i optymalizacji kosztów w usłudze Container Insights przy użyciu reguły zbierania danych
Szczegółowe informacje na temat dostosowywania zbierania dzienników po włączeniu monitorowania, w tym przy użyciu wstępnie ustawionych konfiguracji optymalizacji kosztów. -
Najlepsze rozwiązania dotyczące monitorowania rozwiązania Kubernetes za pomocą usługi Azure Monitor
Najlepsze rozwiązania dotyczące monitorowania klastrów Kubernetes zorganizowanych przez pięć filarów platformy Azure Well-Architected Framework, w tym optymalizację kosztów. -
Optymalizacja kosztów w usłudze Azure Monitor
Najlepsze rozwiązania dotyczące konfigurowania wszystkich funkcji usługi Azure Monitor w celu optymalizacji kosztów i ograniczenia ilości zbieranych danych.
Obsługiwane klastry
Ten artykuł zawiera wskazówki dotyczące wprowadzenia dla następujących typów klastrów. Wszelkie różnice w procesie dla każdego typu są zanotowane w odpowiednich sekcjach.
Wymagania wstępne
Uprawnienia
- Do dołączania wymagany jest co najmniej dostęp Współautora do klastra.
- Po włączeniu monitorowania wymagane jest wyświetlanie danych przez czytelnik monitorowania lub współautor monitorowania.
Wymagania wstępne dotyczące zarządzanego rozwiązania Prometheus
- Klaster musi używać uwierzytelniania tożsamości zarządzanej.
- Następujący dostawcy zasobów muszą być zarejestrowani w subskrypcji klastra i obszaru roboczego usługi Azure Monitor:
- Microsoft.ContainerService
- Microsoft.Insights
- Microsoft.AlertsManagement
- Microsoft.Monitor
- W ramach subskrypcji obszaru roboczego Grafana należy zarejestrować następujących dostawców zasobów:
- Microsoft.Dashboard
Wymagania wstępne dotyczące klastrów Kubernetes z obsługą usługi Arc
- Sprawdź wymagania dotyczące zapory oraz wymagania sieciowe Azure Arc dla Kubernetes.
- Jeśli wcześniej zainstalowano monitorowanie dla usługi AKS, przed kontynuowaniem upewnij się, że monitorowanie zostało wyłączone, aby uniknąć problemów podczas instalacji rozszerzenia.
- Jeśli wcześniej zainstalowano monitorowanie w klastrze przy użyciu skryptu bez rozszerzeń klastra, postępuj zgodnie z instrukcjami w sekcji Wyłączanie monitorowania klastra Kubernetes, aby usunąć ten chart Helm.
Uwaga
Zarządzane rozszerzenie Prometheus Arc-Enabled Kubernetes nie obsługuje następujących konfiguracji:
- Dystrybucje Red Hat Openshift, w tym azure Red Hat OpenShift (ARO)
- Węzły systemu Windows
Obszary robocze
W poniższej tabeli opisano obszary robocze wymagane do obsługi zarządzanych usług Prometheus i Container Insights. Każdy obszar roboczy można utworzyć w trakcie procesu onboardingu lub użyć istniejącego obszaru roboczego. Zobacz Projektowanie architektury obszaru roboczego usługi Log Analytics, aby uzyskać wskazówki dotyczące liczby obszarów roboczych do utworzenia i miejsca ich umieszczania.
Funkcja | Obszar roboczy | Uwagi |
---|---|---|
Zarządzane narzędzie Prometheus | Obszar roboczy usługi Azure Monitor |
Contributor uprawnienie jest wystarczające do włączenia dodatku do wysyłania danych do obszaru roboczego usługi Azure Monitor. Aby połączyć obszar roboczy usługi Azure Monitor i wyświetlać metryki w usłudze Azure Managed Grafana, musisz mieć uprawnienia na określonym poziomie Owner . Jest to wymagane, aby użytkownik wykonujący krok dołączania mógł nadać rolę Tożsamości Systemu Zarządzanej przez Azure Grafana Monitoring Reader w obszarze roboczym usługi Azure Monitor, w celu wykonywania zapytań dotyczących metryk. |
Analizy kontenerów | Obszar roboczy usługi Log Analytics | Klaster można dołączyć do obszaru roboczego usługi Log Analytics w innej subskrypcji platformy Azure w tej samej dzierżawie firmy Microsoft Entra, ale musisz użyć interfejsu wiersza polecenia platformy Azure lub szablonu usługi Azure Resource Manager. Obecnie nie można wykonać tej konfiguracji w witrynie Azure Portal. Jeśli łączysz istniejący klaster z obszarem roboczym usługi Log Analytics w innej subskrypcji, dostawca zasobów Microsoft.ContainerService musi zostać zarejestrowany w subskrypcji w obszarze roboczym usługi Log Analytics. Aby uzyskać dodatkowe informacje, zobacz Rejestrowanie dostawcy zasobów. Aby uzyskać listę obsługiwanych par mapowań dla domyślnego obszaru roboczego, zobacz Mapowania regionów obsługiwane przez Analizę Kontenerów. |
Zarządzane narzędzie Grafana | Obszar roboczy usługi Azure Managed Grafana | Połącz obszar roboczy Grafana z obszarem roboczym Azure Monitor, aby metryki Prometheus zebrane z klastra były dostępne na pulpitach nawigacyjnych Grafana. |
Włącz Prometheus i Grafana
Użyj jednej z poniższych metod, aby włączyć pobieranie metryk Prometheus z klastra i umożliwić wizualizację metryk za pomocą zarządzanej Grafany. Zobacz Łączenie obszaru roboczego Grafana, aby zapoznać się z opcjami łączenia obszaru roboczego Azure Monitor i obszaru roboczego Azure Managed Grafana.
Uwaga
Jeśli masz pojedynczy zasób Azure Monitor połączony prywatnie, włączenie funkcji Prometheus nie będzie działać, jeśli klaster i przestrzeń robocza Azure Monitor znajdują się w różnych regionach. Konfiguracja wymagana dla dodatku Prometheus nie jest dostępna między regionami ze względu na ograniczenie łącza prywatnego. Aby rozwiązać ten problem, utwórz nowe DCE w lokalizacji klastra i nową DCRA w tym samym regionie klastra. Skojarz nowe DCE z klastrem i nadaj nowemu skojarzeniu (DCRA) nazwę configurationAccessEndpoint. Aby uzyskać pełne instrukcje dotyczące konfigurowania punktów końcowych zbierania danych skojarzonych z miejscem roboczym usługi Azure Monitor w celu korzystania z usługi Private Link do pozyskiwania danych, zobacz Włączanie łącza prywatnego do monitorowania Kubernetes w usłudze Azure Monitor.
Włącz za pomocą CLI
Jeśli nie określisz istniejącego obszaru roboczego usługi Azure Monitor w następujących poleceniach, zostanie użyty domyślny obszar roboczy dla grupy zasobów. Jeśli domyślny obszar roboczy jeszcze nie istnieje w regionie klastra, jeden z nazwą w formacie DefaultAzureMonitorWorkspace-<mapped_region>
zostanie utworzony w grupie zasobów o nazwie DefaultRG-<cluster_region>
.
Wymagania wstępne
- Wymagana jest wersja interfejsu wiersza polecenia Az w wersji 2.49.0 lub nowszej.
- Rozszerzenie aks-preview musi zostać odinstalowane z klastrów usługi AKS przy użyciu polecenia
az extension remove --name aks-preview
. - Rozszerzenie k8s-extension musi być zainstalowane przy użyciu polecenia
az extension add --name k8s-extension
. - Wymagane jest rozszerzenie k8s w wersji 1.4.1 lub nowszej.
Parametry opcjonalne
Każde z poleceń usługi AKS i Arc-Enabled Kubernetes zezwala na następujące parametry opcjonalne. Nazwa parametru jest inna dla każdego, ale ich użycie jest takie samo.
Parametr | Nazwa i opis |
---|---|
Klucze adnotacji | AKS: --ksm-metric-annotations-allow-list Łuk: --AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList Rozdzielona przecinkami lista kluczy adnotacji Kubernetes używanych w metryce zasobu kube_resource_annotations . Na przykład kube_pod_annotations to metryka adnotacji dla zasobu podów. Domyślnie ta metryka zawiera tylko etykiety nazw i przestrzeni nazw. Aby uwzględnić więcej adnotacji, podaj listę nazw zasobów w ich postaci mnogiej i klucze adnotacji Kubernetes, które mają być dla nich dozwolone. Dla każdego zasobu można udostępnić pojedynczy * element, aby zezwolić na wszelkie adnotacje, ale ma to poważne konsekwencje dla wydajności. Na przykład pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],... . |
Klucze do etykiet | Usługa AKS: --ksm-metric-labels-allow-list Łuk: --AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist Rozdzielona przecinkami lista większej liczby kluczy etykiet Kubernetes używanych w metryce kube_resource_labels kube_resource_labels zasobu. Na przykład kube_pod_labels to metryka etykiet zasobu podów. Domyślnie ta metryka zawiera tylko etykiety nazw i przestrzeni nazw. Aby uwzględnić więcej etykiet, podaj listę nazw zasobów w formie liczby mnogiej oraz klucze etykiet Kubernetes, które chcesz dla nich zezwolić. Można podać pojedynczy * dla każdego zasobu, aby zezwolić na dowolne etykiety, ale ma to poważne konsekwencje dla wydajności. Na przykład pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],... . |
Reguły rejestrowania | AKS: --enable-windows-recording-rules Umożliwia włączenie grup reguł rejestrowania wymaganych do prawidłowego funkcjonowania pulpitów nawigacyjnych systemu Windows. |
Klaster AKS
-enable-azure-monitor-metrics
Użyj opcji az aks create
lub az aks update
(w zależności od tego, czy tworzysz nowy klaster, czy aktualizujesz istniejący klaster), aby zainstalować dodatek metryk, który złomuje metryki Prometheus.
### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>
### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id <grafana-workspace-name-resource-id>
### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"
Klaster z obsługą Arc
### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics
## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>
### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"
Dla klastrów z obsługą usługi Azure Arc są dostępne następujące dodatkowe parametry opcjonalne:
Parametr | Opis | Wartość domyślna | Ustawienie nadrzędnego klastra Arc |
---|---|---|---|
ClusterDistribution |
Rozkład klastra. | Azure.Cluster.Distribution |
tak |
CloudEnvironment |
Środowisko chmury dla klastra. | Azure.Cluster.Cloud |
tak |
MountCATrustAnchorsDirectory |
Czy zamontować katalog zakotwiczeń zaufania CA. | true |
Nie |
MountUbuntuCACertDirectory |
Czy zainstalować katalog certyfikatów urzędu certyfikacji systemu Ubuntu. |
true
aks_edge chyba że dystrybucja. |
Nie |
Włączanie szczegółowych informacji o kontenerze
Użyj jednej z poniższych metod, aby włączyć Container Insights w klastrze. Po zakończeniu tej czynności zobacz Konfigurowanie zbierania danych agenta dla usługi Container Insights, aby dostosować konfigurację, aby się upewnić, że nie zbierasz większej ilości danych niż jest to wymagane.
Uwaga
Jeśli masz jeden zasób usługi Azure Monitor połączony za pomocą łącza prywatnego, nie można włączyć usługi Container Insights w portalu Azure Portal. Aby uzyskać pełne instrukcje dotyczące konfigurowania usługi Container Insights za pomocą usługi Private Link, zobacz Włączanie łącza prywatnego na potrzeby monitorowania platformy Kubernetes w usłudze Azure Monitor.
Użyj jednego z następujących poleceń, aby umożliwić monitorowanie klastrów AKS i klastrów obsługiwanych przez Arc. Jeśli nie określisz istniejącego obszaru roboczego usługi Log Analytics, zostanie użyty domyślny obszar roboczy dla grupy zasobów. Jeśli domyślny obszar roboczy jeszcze nie istnieje w regionie klastra, zostanie utworzony z nazwą w formacie DefaultWorkspace-<GUID>-<Region>
.
Wymagania wstępne
- Interfejs wiersza polecenia platformy Azure w wersji 2.43.0 lub nowszej
- Uwierzytelnianie tożsamości zarządzanej jest domyślne w interfejsie wiersza polecenia w wersji 2.49.0 lub nowszej.
- Rozszerzenie Azure k8s w wersji 1.3.7 lub nowszej
- Uwierzytelnianie tożsamości zarządzanej jest ustawieniem domyślnym w rozszerzeniu k8s w wersji 1.43.0 lub nowszej.
- Uwierzytelnianie tożsamości zarządzanej nie jest obsługiwane w przypadku klastrów Kubernetes z obsługą Arc wyposażonych w ARO (Azure Red Hat Openshift) lub węzły systemu Windows. Użyj starszego uwierzytelniania.
- W przypadku wersji interfejsu wiersza polecenia 2.54.0 lub nowszej, schemat logowania będzie skonfigurowany na ContainerLogV2 za pomocą ConfigMap.
Uwaga
Można włączyć schemat ContainerLogV2 dla klastra przy użyciu reguły zbierania danych klastra (DCR) lub ConfigMap. Jeśli oba ustawienia są włączone, pierwszeństwo będzie mieć ConfigMap. Dzienniki stdout i stderr zostaną pozyskane do tabeli ContainerLog tylko wtedy, gdy zarówno DCR, jak i ConfigMap są jawnie wyłączone.
Klaster AKS
### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>
### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>
### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false
Przykład
az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
Klaster obsługujący Arc
### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers
### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>
### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true
### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi
### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>
Zobacz sekcję żądania zasobów i limity wykresu programu Helm, aby zapoznać się z dostępnymi ustawieniami konfiguracji.
Przykład
az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
Klaster obsługujący Arc z serwerem proxy przekierowującym
Jeśli klaster jest skonfigurowany z serwerem proxy do przodu, ustawienia serwera proxy są automatycznie stosowane do rozszerzenia. W przypadku klastra z serwerem AMPLS i serwerem proxy należy zignorować konfigurację serwera proxy. Dołącz rozszerzenie z użyciem ustawienia konfiguracyjnego amalogs.ignoreExtensionProxySettings=true
.
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true
Klaster z obsługą usługi Arc posiadający węzły ARO, OpenShift lub Windows
Uwierzytelnianie za pomocą zarządzanej tożsamości nie jest obsługiwane w przypadku klastrów Kubernetes z obsługą Arc ani dla węzłów ARO (Azure Red Hat OpenShift), OpenShift lub Windows. Użyj starszego uwierzytelniania, określając amalogs.useAADAuth=false
tak jak w poniższym przykładzie.
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false
Usuń wystąpienie rozszerzenia
Następujące polecenie usuwa tylko wystąpienie rozszerzenia, ale nie usuwa obszaru roboczego usługi Log Analytics. Dane w zasobie usługi Log Analytics pozostają nienaruszone.
az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>
Włączanie pełnego monitorowania za pomocą witryny Azure Portal
Nowy klaster usługi AKS (Prometheus, Container Insights i Grafana)
Podczas tworzenia nowego klastra AKS w portalu Azure możesz włączyć Prometheus, Container insights i Grafana z karty Monitorowanie. Upewnij się, że zaznaczasz Włącz dzienniki kontenerów, Włącz metryki Prometheus oraz Włącz Grafana.
Istniejący klaster (Prometheus, Container Insights i Grafana)
Przejdź do klastra w witrynie Azure Portal.
W menu usługi w obszarze Monitorowanie wybierz pozycję Szczegółowe informacje>
Funkcja Container Insights jest już włączona. Zaznacz pola wyboru Włącz metryki Prometheus i Włącz Grafana. Jeśli masz istniejący obszar roboczy usługi Azure Monitor i obszar roboczy narzędzia Grafana, są one wybrane dla Ciebie.
Wybierz pozycję Ustawienia zaawansowane, jeśli chcesz wybrać alternatywne obszary robocze lub utworzyć nowe. Ustawienia wstępne kosztów umożliwiają zmodyfikowanie domyślnych szczegółów kolekcji w celu zmniejszenia kosztów monitorowania. Aby uzyskać szczegółowe informacje, zobacz Włączanie ustawień optymalizacji kosztów w usłudze Container Insights .
Wybierz Konfiguruj.
Istniejący klaster (tylko prometheus)
Przejdź do klastra w witrynie Azure Portal.
W menu usługi w obszarze Monitorowanie wybierz pozycję Szczegółowe informacje>
Zaznacz pole wyboru Włącz metryki Prometheus.
Wybierz pozycję Ustawienia zaawansowane, jeśli chcesz wybrać alternatywne obszary robocze lub utworzyć nowe. Ustawienie ustawień wstępnych kosztów umożliwia zmodyfikowanie domyślnych szczegółów kolekcji w celu zmniejszenia kosztów monitorowania.
Wybierz Konfiguruj.
Włączanie zbierania metryk systemu Windows (wersja zapoznawcza)
Uwaga
Nie ma limitu procesora CPU/pamięci w pliku windows-exporter-daemonset.yaml, przez co może to przeciążać węzły systemu Windows.
Aby uzyskać więcej informacji, zobacz Rezerwacja zasobów
Podczas wdrażania obciążeń należy ustawić limity pamięci zasobów i procesora CPU dla kontenerów. Spowoduje to również odejmowanie z NodeAllocatable i pomaga harmonogramowi klastra w określaniu, które zasobniki umieścić na których węzłach. Planowanie zasobników bez ograniczeń może spowodować nadmierną aprowizację węzłów systemu Windows, a w skrajnych przypadkach może spowodować, że węzły staną się w złej kondycji.
Od wersji 6.4.0-main-02-22-2023-3ee44b9e kontenera zarządzanego dodatku Prometheus (prometheus_collector) w klastrach AKS zostało włączone zbieranie metryk systemu Windows. Integracja z dodatkiem Metryk usługi Azure Monitor umożliwia rozpoczęcie działania zasobników DaemonSet dla systemu Windows w pulach węzłów. Obsługiwane są systemy Windows Server 2019 i Windows Server 2022. Wykonaj następujące kroki, aby umożliwić podom zbieranie metryk z pul węzłów Windows.
Ręcznie zainstaluj windows-exporter na węzłach AKS, aby uzyskać dostęp do metryk Windows, wdrażając windows-exporter-daemonset YAML. Włącz następujące moduły zbierające:
[defaults]
container
memory
process
cpu_info
Aby uzyskać więcej modułów zbierających, zobacz Eksporter Prometheus dla metryk systemu Windows.
Wdróż plik YAML windows-exporter-daemonset. Należy pamiętać, że jeśli w węźle zastosowano jakiekolwiek skażenia, należy zastosować odpowiednie tolerancje.
kubectl apply -f windows-exporter-daemonset.yaml
Zastosuj mapę ama-metrics-settings-configmap do klastra. Ustaw wartości logiczne
windowsexporter
iwindowskubeproxy
natrue
wartość . Aby uzyskać więcej informacji, zobacz Metryki — configmap ustawień dodatku.Włącz reguły rejestrowania, które są wymagane dla wbudowanych pulpitów nawigacyjnych:
- W przypadku włączania przy użyciu interfejsu wiersza polecenia użyj opcji
--enable-windows-recording-rules
. - W przypadku dołączania przy użyciu szablonu usługi ARM, Bicep lub Azure Policy ustaw wartość
enableWindowsRecordingRules
natrue
w pliku parametrów. - Jeśli klaster jest już dołączony, użyj tego szablonu usługi ARM i tego pliku parametrów, aby utworzyć grupy reguł. Spowoduje to dodanie wymaganych reguł rejestrowania i nie jest operacją arm w klastrze i nie ma wpływu na bieżący stan monitorowania klastra.
- W przypadku włączania przy użyciu interfejsu wiersza polecenia użyj opcji
Weryfikowanie wdrożenia
Użyj narzędzia wiersza polecenia kubectl, aby sprawdzić, czy agent jest wdrożony prawidłowo.
Zarządzane narzędzie Prometheus
Sprawdź, czy zestaw DaemonSet został prawidłowo wdrożony w pulach węzłów systemu Linux
kubectl get ds ama-metrics-node --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Linux w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-node 1 1 1 1 1 <none> 10h
Sprawdź, czy węzły systemu Windows zostały prawidłowo wdrożone
kubectl get ds ama-metrics-win-node --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Windows w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-win-node 3 3 3 3 3 <none> 10h
Sprawdź, czy dwa ReplicaSets zostały wdrożone dla Prometheus
kubectl get rs --namespace=kube-system
Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$kubectl get rs --namespace=kube-system
NAME DESIRED CURRENT READY AGE
ama-metrics-5c974985b8 1 1 1 11h
ama-metrics-ksm-5fcf8dffcd 1 1 1 11h
Analizy kontenerów
Sprawdź, czy DaemonSets zostały prawidłowo wdrożone w pulach węzłów Linuksa
kubectl get ds ama-logs --namespace=kube-system
Liczba podów powinna być równa liczbie węzłów Linux w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs 2 2 2 2 2 <none> 1d
Sprawdź, czy węzły systemu Windows zostały prawidłowo wdrożone
kubectl get ds ama-logs-windows --namespace=kube-system
Liczba podów powinna być równa liczbie węzłów Windows w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs-windows 2 2 2 2 2 <none> 1d
Weryfikowanie wdrożenia rozwiązania Container Insights
kubectl get deployment ama-logs-rs --namespace=kube-system
Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
ama-logs-rs 1/1 1 1 24d
Wyświetlanie konfiguracji CLI
Użyj polecenia aks show
, aby dowiedzieć się, czy rozwiązanie jest włączone, poznać identyfikator zasobu obszaru roboczego usługi Log Analytics oraz uzyskać informacje podsumowujące dotyczące klastra.
az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>
Polecenie zwróci informacje w formacie JSON dotyczące rozwiązania. Sekcja addonProfiles
powinna zawierać informacje na temat elementu omsagent
, jak w poniższym przykładzie:
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"useAADAuth": "true"
},
"enabled": true,
"identity": null
},
}
Aprowizowane zasoby
Po włączeniu monitorowania w ramach subskrypcji są tworzone następujące zasoby:
Nazwa zasobu | Typ zasobu | Grupa zasobów | Region/lokalizacja | Opis |
---|---|---|---|---|
MSCI-<aksclusterregion>-<clustername> |
Reguła zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Log Analytics | Ta reguła zbierania danych dotyczy zbierania dzienników przez agenta usługi Azure Monitor, który używa obszaru roboczego usługi Log Analytics jako miejsca docelowego i jest skojarzony z zasobem klastra usługi AKS. |
MSPROM-<aksclusterregion>-<clustername> |
Reguła zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Azure Monitor | Ta reguła zbierania danych dotyczy zbierania metryk prometheus przez dodatek metryk, który ma wybrany obszar roboczy Azure Monitor jako miejsce docelowe i jest również powiązany z zasobem klastra AKS. |
MSPROM-<aksclusterregion>-<clustername> |
Punkt końcowy zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Azure Monitor | Ten punkt końcowy zbierania danych jest używany przez powyższą regułę zbierania danych do pozyskiwania metryk z Prometheusa z dodatku metryk |
Podczas tworzenia nowego obszaru roboczego usługi Azure Monitor zostaną utworzone następujące dodatkowe zasoby
Nazwa zasobu | Typ zasobu | Grupa zasobów | Region/lokalizacja | Opis |
---|---|---|---|---|
<azuremonitor-workspace-name> |
Reguła zbierania danych | <MA_azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed | Tak samo jak obszar roboczy usługi Azure Monitor | DcR utworzony podczas korzystania z serwera OSS Prometheus do zdalnego zapisu w przestrzeni roboczej Azure Monitor. |
<azuremonitor-workspace-name> |
Punkt końcowy zbierania danych | MA_<azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed | Tak samo jak obszar roboczy usługi Azure Monitor | Środowisko DCE jest tworzone, gdy używasz serwera Prometheus typu open-source do Remote Write w obszarze roboczym Azure Monitor. |
Różnice między klastrami systemu Windows i Linux
Główne różnice w monitorowaniu klastra systemu Windows Server w porównaniu z klastrem systemu Linux obejmują:
- System Windows nie ma metryki RSS pamięci. W związku z tym nie jest dostępna dla węzłów i kontenerów systemu Windows. Dostępna jest metryka Zestawu roboczego.
- Informacje o pojemności magazynu dysku nie są dostępne dla węzłów systemu Windows.
- Monitorowane są tylko środowiska zasobników, a nie środowiska platformy Docker.
- W wersji zapoznawczej obsługiwane są maksymalnie 30 kontenerów systemu Windows Server. To ograniczenie nie dotyczy kontenerów systemu Linux.
Uwaga
Obsługa usługi Container Insights dla systemu operacyjnego Windows Server 2022 jest dostępna w wersji zapoznawczej.
Konteneryzowany agent systemu Linux (zasobnik zestawu replik) wykonuje wywołania interfejsu API do wszystkich węzłów systemu Windows na bezpiecznym porcie Kubelet (10250) w klastrze w celu zbierania metryk związanych z wydajnością węzła i kontenera. Bezpieczny port kubelet (:10250) powinien być otwarty w sieci wirtualnej klastra zarówno dla ruchu przychodzącego, jak i wychodzącego, aby umożliwić zbieranie metryk związanych z wydajnością węzła systemu Windows oraz kontenerów.
Jeśli masz klaster Kubernetes z węzłami systemu Windows, przejrzyj i skonfiguruj sieciową grupę zabezpieczeń i zasady sieciowe, aby upewnić się, że bezpieczny port Kubelet (:10250) jest otwarty zarówno dla ruchu przychodzącego, jak i wychodzącego w sieci wirtualnej klastra.
Następne kroki
- Jeśli podczas próby dołączenia rozwiązania wystąpią problemy, zapoznaj się z przewodnikiem rozwiązywania problemów.
- Dzięki włączeniu monitorowania w celu zbierania kondycji i wykorzystania zasobów klastra usługi AKS i uruchomionych na nich obciążeń dowiedz się , jak używać szczegółowych informacji o kontenerze.