Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak nastavit pozorovatelnost sítí kontejnerů pro Azure Kubernetes Service (AKS) pomocí Spravovaných Prometheus a Grafana, BYO Prometheus a Grafana, a jak vizualizovat sebrané metriky.
Pozorovatelnost kontejnerové sítě můžete použít ke shromažďování dat o síťovém provozu clusterů AKS. Umožňuje centralizovanou platformu pro monitorování stavu aplikace a sítě. V současné době se metriky ukládají v systému Prometheus a Grafana může být použita k jejich vizualizaci. Pozorovatelnost služby Container Network také nabízí možnost povolit Hubble. Tyto funkce jsou podporovány jak pro shluky Cilium, tak i pro clustery bez Cilium.
Pozorovatelnost služby Container Network je jednou z funkcí služby Advanced Container Networking Services. Další informace o Advanced Container Networking Services pro Azure Kubernetes Service (AKS) najdete v tématu Co je Advanced Container Networking Services pro Azure Kubernetes Service (AKS)?
Důležité
Od 30. listopadu 2025 už Azure Kubernetes Service (AKS) nepodporuje ani neposkytuje aktualizace zabezpečení pro Azure Linux 2.0. Image uzlu Azure Linux 2.0 je zafixována u verze 202512.06.0. Od 31. března 2026 se image uzlů odeberou a nebudete moct škálovat fondy uzlů. Přejděte na podporovanou verzi Azure Linuxu aktualizací poolů uzlů na podporovanou verzi Kubernetes nebo migrací na osSku AzureLinux3. Další informace najdete v tématu Problém s vyřazením z GitHubu a oznámení o vyřazení aktualizací Azure. Pokud chcete mít přehled o oznámeních a aktualizacích, postupujte podle poznámek k verzi AKS.
Prerequisites
- Účet Azure s aktivním předplatným. Pokud ho nemáte, vytvořte si bezplatný účet před tím, než začnete.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Minimální verze Azure CLI vyžadovaná pro kroky v tomto článku je 2.56.0. Verzi zjistíte spuštěním příkazu
az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Povolte pokročilé síťové služby kontejnerů
Abyste mohli pokračovat, musíte mít cluster AKS s povolenou službou Advanced Container Networking Services .
Příkaz az aks create s příznakem --enable-acnsAdvanced Container Networking Services vytvoří nový cluster AKS se všemi funkcemi Advanced Container Networking Services. Mezi tyto funkce patří:
Pozorovatelnost služby Container Network: Poskytuje přehled o síťovém provozu. Další informace najdete v tématu Pozorovatelnost služby Container Network.
Zabezpečení sítě kontejnerů: Nabízí funkce zabezpečení, jako je filtrování FQDN. Další informace najdete v tématu Container Network Security.
Note
Clustery s datovou rovinou Cilium podporují pozorovatelnost a zabezpečení kontejnerových sítí počínaje verzí Kubernetes 1.29.
# Set an environment variable for the AKS cluster name. Make sure to replace the placeholder with your own value.
export CLUSTER_NAME="<aks-cluster-name>"
# Create an AKS cluster
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--generate-ssh-keys \
--location eastus \
--max-pods 250 \
--network-plugin azure \
--network-plugin-mode overlay \
--network-dataplane cilium \
--node-count 2 \
--pod-cidr 192.168.0.0/16 \
--kubernetes-version 1.29 \
--enable-acns
Povolení pokročilých služeb síťového propojení kontejnerů v existujícím clusteru
Příkaz az aks update s příznakem --enable-acnsAdvanced Container Networking Services aktualizuje existující cluster AKS se všemi funkcemi Advanced Container Networking Services, které zahrnují pozorovatelnost služby Container Network a funkci Zabezpečení sítě kontejnerů .
Note
Pouze clustery s rovinou dat Cilium podporují funkce zabezpečení kontejnerové sítě služby Advanced Container Networking Services.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns
Získání přihlašovacích údajů clusteru
Jakmile získáte přihlašovací údaje ke clusteru pomocí příkazu az aks get-credentials, pokračujte dál.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Azure spravovaný systémem Prometheus a Grafana
Pokud používáte BYO Prometheus a Grafana, přeskočte tuto část.
Pomocí následujícího příkladu nainstalujte a povolte Prometheus a Grafana pro cluster AKS.
Vytvoření prostředku Azure Monitoru
#Set an environment variable for the Grafana name. Make sure to replace the placeholder with your own value.
export AZURE_MONITOR_NAME="<azure-monitor-name>"
# Create Azure monitor resource
az resource create \
--resource-group $RESOURCE_GROUP \
--namespace microsoft.monitor \
--resource-type accounts \
--name $AZURE_MONITOR_NAME \
--location eastus \
--properties '{}'
Vytvoření instance Azure Managed Grafana
K vytvoření instance Grafany použijte příkaz az grafana create . Název instance Grafana musí být jedinečný.
# Set an environment variable for the Grafana name. Make sure to replace the placeholder with your own value.
export GRAFANA_NAME="<grafana-name>"
# Create Grafana instance
az grafana create \
--name $GRAFANA_NAME \
--resource-group $RESOURCE_GROUP
Umístění ID prostředků Azure Managed Grafana a Azure Monitoru do proměnných
Pomocí příkazu az grafana show umístěte ID prostředku Grafana do proměnné. Pomocí příkazu az resource show uložte ID prostředku služby Azure Monitor do proměnné. Nahraďte myGrafana názvem vaší instance Grafana.
grafanaId=$(az grafana show \
--name $GRAFANA_NAME \
--resource-group $RESOURCE_GROUP \
--query id \
--output tsv)
azuremonitorId=$(az resource show \
--resource-group $RESOURCE_GROUP \
--name $AZURE_MONITOR_NAME \
--resource-type "Microsoft.Monitor/accounts" \
--query id \
--output tsv)
Propojte Azure Monitor a Azure Managed Grafana s clusterem AKS
Pomocí příkazu az aks update propojte prostředky Azure Monitoru a Grafany s clusterem AKS.
az aks update \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--enable-azure-monitor-metrics \
--azure-monitor-workspace-resource-id $azuremonitorId \
--grafana-resource-id $grafanaId
Visualization
Vizualizace s využitím Azure Managed Grafana
Tento krok přeskočte, pokud používáte BYO Grafana
Note
Metrika hubble_flows_processed_total se ve výchozím nastavení nesbírá kvůli vysoké kardinalitě metrik ve velkorozsahových clusterech.
Z tohoto důvodu mají řídicí panely Toky podů panely s chybějícími daty. Pokud chcete tuto metriku povolit a naplnit chybějící data, musíte upravit mapu ama-metrics-settings-configmap. Konkrétně aktualizujte oddíl "default-targets-metrics-keep-list". Pomocí následujících kroků aktualizujte mapu konfigurace:
- Získejte nejnovější mapu ama-metrics-settings-configmap. (https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml)
- Vyhledejte networkobservabilityHubble = ""
- Změňte ho na networkobservabilityHubble = "hubble.*"
- Nyní by se měly metriky toku podů začít naplňovat.
Další informace o minimálním příjmu najdete v dokumentaci k minimálnímu příjmu.
Pomocí příkazu
kubectl get podsse ujistěte, že pody služby Azure Monitor běží.kubectl get pods -o wide -n kube-system | grep ama-Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
ama-metrics-5bc6c6d948-zkgc9 2/2 Running 0 (21h ago) 26h ama-metrics-ksm-556d86b5dc-2ndkv 1/1 Running 0 (26h ago) 26h ama-metrics-node-lbwcj 2/2 Running 0 (21h ago) 26h ama-metrics-node-rzkzn 2/2 Running 0 (21h ago) 26h ama-metrics-win-node-gqnkw 2/2 Running 0 (26h ago) 26h ama-metrics-win-node-tkrm8 2/2 Running 0 (26h ago) 26hVytvořili jsme ukázkové řídicí panely. Najdete je ve složce Řídicí panely > Azure Managed Prometheus. Mají názvy jako Kubernetes / Sítě /
<name>. Sada řídicích panelů zahrnuje:- Clustery: Zobrazuje metriky na úrovni uzlu pro vaše clustery.
- DNS (cluster): Zobrazuje metriky DNS v clusteru nebo výběru uzlů.
- DNS (úloha): Zobrazuje metriky DNS pro zadanou úlohu (například pody daemonSet nebo nasazení, jako je CoreDNS).
- Pokles (pracovní zátěž): Zobrazuje poklesy do/z uvedené pracovní zátěže (například pody nasazení nebo DaemonSetu).
- Toky paketů v podech (jmenný prostor): zobrazuje toky paketů L4/L7 do/z zadaného jmenného prostoru (tj. pody v jmenném prostoru).
- Toky podů (zátěž): Zobrazuje L4/L7 toky paketů do/z zadané zátěže (například podů v rámci nasazení nebo DaemonSetu).
Vizualizace v BYO Grafana
Pokud používáte Grafana spravovanou v Azure, tento krok přeskočte.
Do stávající konfigurace systému Prometheus přidejte následující úlohu sběru dat a restartujte server Prometheus.
- job_name: networkobservability-hubble kubernetes_sd_configs: - role: pod relabel_configs: - target_label: cluster replacement: myAKSCluster action: replace - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_k8s_app] regex: kube-system;(retina|cilium) action: keep - source_labels: [__address__] action: replace regex: ([^:]+)(?::\d+)? replacement: $1:9965 target_label: __address__ - source_labels: [__meta_kubernetes_pod_node_name] target_label: instance action: replace metric_relabel_configs: - source_labels: [__name__] regex: '|hubble_dns_queries_total|hubble_dns_responses_total|hubble_drop_total|hubble_tcp_flags_total' # if desired, add |hubble_flows_processed_total action: keepV cílech Prometheus ověřte, že jsou k dispozici network-obs-pods.
Přihlaste se k Grafana a naimportujte následující ukázkové řídicí panely pomocí následujících ID:
- Clustery: Zobrazuje metriky na úrovni uzlu pro vaše clustery. (ID: 18814)
- DNS (cluster): Zobrazuje metriky DNS v clusteru nebo výběru uzlů. (ID: 20925)
- DNS (úloha): Zobrazuje metriky DNS pro zadanou úlohu (například pody daemonSet nebo nasazení, jako je CoreDNS). (ID: [20926] https://grafana.com/grafana/dashboards/20926-kubernetes-networking-dns-workload/)
- Poklesy (pracovní zátěž): ukazuje poklesy do/z určené pracovní zátěže (například pody nasazení nebo DaemonSet). (ID: 20927).
- Toky paketů v podech (jmenný prostor): zobrazuje toky paketů L4/L7 do/z zadaného jmenného prostoru (tj. pody v jmenném prostoru). (ID: 20928)
- Toky podů (zátěž): Zobrazuje L4/L7 toky paketů do/z zadané zátěže (například podů v rámci nasazení nebo DaemonSetu). (ID: 20929)
Note
- V závislosti na nastavení instancí Prometheus/Grafana některé panely řídicích panelů vyžadují konkrétní úpravy, aby se zobrazila všechna data.
- Cilium v současné době nepodporuje metriky a řídicí panely DNS.
Úklid prostředků
Pokud nemáte v plánu používat tuto aplikaci, pomocí příkazu odstraňte další prostředky, které jste vytvořili v tomto článku az group delete .
az group delete --name $RESOURCE_GROUP
Další kroky
V tomto článku s postupy jste zjistili, jak nainstalovat a povolit pozorovatelnost služby Container Network pro cluster AKS.
Další informace o Advanced Container Networking Services pro Azure Kubernetes Service (AKS) najdete v tématu Co je Advanced Container Networking Services pro Azure Kubernetes Service (AKS)?.
Další informace o službě Container Network Security a jejích možnostech najdete v tématu Co je Container Network Security?