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)?.
Požadavky
- Úč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 dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, 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.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. 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-acns
Advanced 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.
Poznámka:
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-acns
Advanced 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ů.
Poznámka:
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
Vizualizace
Vizualizace s využitím Azure Managed Grafana
Tento krok přeskočte, pokud používáte BYO Grafana
Poznámka:
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í panely na řídicích panelech Pods Flows chybějící data. 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 pods
se 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) 26h
Vytvoř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ř. pody daemonSet nebo nasazení, jako je CoreDNS).
- Poklesy (úloha): ukazuje poklesy do/z zadané úlohy (např. 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 paketů (pracovní zátěž): Zobrazuje L4/L7 toky paketů do nebo ze zadané pracovní zátěže (např. podů z 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: keep
V cílech Prometheus ověřte, že network-obs-pods jsou k dispozici.
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ř. 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 zadané pracovní zátěže (např. pody nasazení nebo démonické sady). (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)
- Pod Flows (úloha): Zobrazuje toky paketů L4/L7 do/z zadaného workloadu (např. Pody Deploymentu nebo DaemonSetu).(ID: 20929)
Poznámka:
- V závislosti na nastavení instancí Prometheus/Grafana můžou některé panely řídicích panelů vyžadovat ú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?
Azure Kubernetes Service