Monitorování metrik kontroleru příchozího přenosu dat nginx v doplňku směrování aplikací pomocí nástroje Prometheus v Grafana (Preview)
Kontroler ingress-nginx v doplňku směrování aplikace zveřejňuje mnoho metrik pro požadavky, proces nginx a kontroler, který může být užitečný při analýze výkonu a využití vaší aplikace.
Doplněk pro směrování aplikací zveřejňuje koncový bod metriky Prometheus na /metrics
portu 10254.
Důležité
Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné bázi. Verze Preview jsou poskytovány "tak, jak jsou" a "dostupné", a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Požadavky
- Cluster Azure Kubernetes Service (AKS) s povoleným doplňkem směrování aplikací.
- Instance Prometheus, jako je spravovaná služba Azure Monitoru pro Prometheus.
- Instance Grafany, jako je Například Azure Managed Grafana.
Ověření koncového bodu metrik
Pokud chcete ověřit, že se metriky shromažďují, můžete nastavit port přesměrovaný na jeden z podů kontroleru ingress-nginx.
kubectl get pods -n app-routing-system
NAME READY STATUS RESTARTS AGE
external-dns-667d54c44b-jmsxm 1/1 Running 0 4d6h
nginx-657bb8cdcf-qllmx 1/1 Running 0 4d6h
nginx-657bb8cdcf-wgcr7 1/1 Running 0 4d6h
Teď přesměrujte místní port na port 10254 na jednom z podů nginx.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
Poznamenejte si místní port (43307
v tomto případě) a otevřete http://localhost:43307/metrics ho v prohlížeči. Měli byste vidět načítání metrik kontroleru ingress-nginx.
Teď můžete proces ukončit port-forward
a ukončit tak předávání.
Konfigurace spravované služby Azure Monitor pro Prometheus a Azure Managed Grafana pomocí Container Insights
Spravovaná služba Azure Monitoru pro Prometheus je plně spravovaná služba kompatibilní s Prometheus, která podporuje standardní funkce odvětví, jako jsou řídicí panely PromQL, Grafana a výstrahy Prometheus. Tato služba vyžaduje konfiguraci doplňku metrik pro agenta Azure Monitoru, který odesílá data do prometheus. Pokud váš cluster není nakonfigurovaný s doplňkem, můžete podle tohoto článku nakonfigurovat cluster Azure Kubernetes Service (AKS) tak, aby odesílal data do spravované služby Azure Monitor pro Prometheus a odeslal shromážděné metriky do instance Azure Managed Grafana.
Povolení výstřižků na základě poznámek podů
Po aktualizaci clusteru pomocí agenta Azure Monitoru je potřeba nakonfigurovat agenta tak, aby povoloval výstřižky na základě poznámek podů, které se přidají do podů ingress-nginx. Jedním ze způsobů, jak toto nastavení nastavit, je v objektu ama-metrics-settings-configmap
ConfigMap v kube-system
oboru názvů.
Upozornění
Tím nahradíte existující ama-metrics-settings-configmap
objekt ConfigMap v souboru kube-system
. Pokud už máte konfiguraci, můžete ji zálohovat nebo sloučit s touto konfigurací.
Existující objekt ConfigMap můžete zálohovat ama-metrics-settings-config
spuštěním příkazu kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
Následující konfigurace nastaví podannotationnamespaceregex
parametr na .*
výstřižky všech oborů názvů.
kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
name: ama-metrics-settings-configmap
namespace: kube-system
data:
schema-version:
#string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
v1
config-version:
#string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
ver1
prometheus-collector-settings: |-
cluster_alias = ""
default-scrape-settings-enabled: |-
kubelet = true
coredns = false
cadvisor = true
kubeproxy = false
apiserver = false
kubestate = true
nodeexporter = true
windowsexporter = false
windowskubeproxy = false
kappiebasic = true
prometheuscollectorhealth = false
# Regex for which namespaces to scrape through pod annotation based scraping.
# This is none by default. Use '.*' to scrape all namespaces of annotated pods.
pod-annotation-based-scraping: |-
podannotationnamespaceregex = ".*"
default-targets-metrics-keep-list: |-
kubelet = ""
coredns = ""
cadvisor = ""
kubeproxy = ""
apiserver = ""
kubestate = ""
nodeexporter = ""
windowsexporter = ""
windowskubeproxy = ""
podannotations = ""
kappiebasic = ""
minimalingestionprofile = true
default-targets-scrape-interval-settings: |-
kubelet = "30s"
coredns = "30s"
cadvisor = "30s"
kubeproxy = "30s"
apiserver = "30s"
kubestate = "30s"
nodeexporter = "30s"
windowsexporter = "30s"
windowskubeproxy = "30s"
kappiebasic = "30s"
prometheuscollectorhealth = "30s"
podannotations = "30s"
debug-mode: |-
enabled = false
EOF
Za několik minut ama-metrics
by se pody v kube-system
oboru názvů měly restartovat a vyzvednout novou konfiguraci.
Kontrola vizualizace metrik ve službě Azure Managed Grafana
Teď, když máte nakonfigurovanou spravovanou službu Azure Monitor pro Prometheus a Azure Managed Grafana, byste měli přistupovat ke spravované instanci Grafany.
Existují dva oficiální řídicí panely ingress-nginx , které si můžete stáhnout a importovat do instance Grafana:
- Řídicí panel kontroleru příchozího přenosu dat -nginx
- Řídicí panel výkonu zpracování žádostí
Řídicí panel kontroleru příchozího přenosu dat -nginx
Tento řídicí panel poskytuje přehled o svazku požadavků, připojeních, úspěšnosti, opětovném načtení konfigurace a konfiguracích, které se nesynchronizují. Můžete ho také použít k zobrazení zatížení vstupně-výstupních operací sítě, paměti a procesoru kontroleru příchozího přenosu dat. Nakonec se zobrazí také doby odezvy percentilu P50, P95 a P99 příchozího přenosu dat a jejich propustnosti.
Tento řídicí panel si můžete stáhnout z GitHubu.
Řídicí panel výkonu zpracování žádostí
Tento řídicí panel poskytuje přehled o výkonu zpracování požadavků různých upstreamových cílů příchozího přenosu dat, což jsou koncové body vašich aplikací, do kterých kontroler příchozího přenosu dat předává provoz. Zobrazuje percentil P50, P95 a P99 celkového počtu požadavků a upstreamových dob odezvy. Můžete také zobrazit agregace chyb požadavků a latence. Tento řídicí panel slouží ke kontrole a zlepšení výkonu a škálovatelnosti vašich aplikací.
Tento řídicí panel si můžete stáhnout z GitHubu.
Import řídicího panelu
Pokud chcete importovat řídicí panel Grafana, rozbalte levou nabídku a v části Řídicí panely klikněte na Importovat .
Potom nahrajte požadovaný soubor řídicího panelu a klikněte na Načíst.
Další kroky
- Škálování úloh můžete nakonfigurovat pomocí metrik příchozího přenosu dat šrotovaných pomocí Prometheus pomocí automatického škálování řízeného událostmi Kubernetes (KEDA). Přečtěte si další informace o integraci KEDA s AKS.
- Vytvořte a spusťte zátěžový test pomocí služby Azure Load Testing pro testování výkonu úloh a optimalizujte škálovatelnost vašich aplikací.
Azure Kubernetes Service