Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du konfigurerar containernätverksobservabilitet för Azure Kubernetes Service (AKS) med hjälp av Managed Prometheus och Grafana och BYO Prometheus och Grafana samt visualiserar de skrapade måtten
Du kan använda Container Network Observability för att samla in data om nätverkstrafiken i dina AKS-kluster. Det möjliggör en centraliserad plattform för övervakning av program och nätverkshälsa. För närvarande lagras mått i Prometheus och Grafana kan användas för att visualisera dem. Container Network Observability erbjuder också möjligheten att aktivera Hubble. Dessa funktioner stöds för både Cilium- och icke-Cilium-kluster.
Container Network Observability är en av funktionerna i Advanced Container Networking Services. Mer information om Advanced Container Networking Services för Azure Kubernetes Service (AKS) finns i Vad är Avancerade containernätverkstjänster för Azure Kubernetes Service (AKS)?
Viktigt!
Från och med den 30 november 2025 kommer AKS inte längre att stödja eller tillhandahålla säkerhetsuppdateringar för Azure Linux 2.0. Från och med den 31 mars 2026 tas nodbilder bort och du kan inte skala dina nodpooler. Migrera till en Azure Linux-version som stöds genom att uppgradera dina nodpooler till en Kubernetes-version som stöds eller migrera till osSku AzureLinux3. Mer information finns i [Pensionering] Azure Linux 2.0-nodpooler på AKS.
Prerequisites
- Ett Azure-konto med en aktiv prenumeration. Om du inte har ett konto kan du skapa ett kostnadsfritt konto innan du börjar.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den lägsta versionen av Azure CLI som krävs för stegen i den här artikeln är 2.56.0. Kör
az --versionför att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Aktivera avancerade containernätverkstjänster
För att kunna fortsätta måste du ha ett AKS-kluster med Advanced Container Networking Services aktiverat.
Kommandot az aks create med flaggan Advanced Container Networking Services, --enable-acns, skapar ett nytt AKS-kluster med alla funktioner i Advanced Container Networking Services. Dessa funktioner omfattar:
Observerbarhet för containernätverk: Ger insikter om din nätverkstrafik. Mer information finns i Container Network Observability (Observerbarhet för containernätverk).
Säkerhet för containernätverk: Erbjuder säkerhetsfunktioner som FQDN-filtrering. Mer information finns i Container Network Security.
Note
Kluster med Cilium-dataplanet stöder containernätverksobservabilitet och containernätverkssäkerhet från och med Kubernetes version 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
Aktivera Advanced Container Networking Services i ett befintligt kluster
Kommandot az aks update med flaggan --enable-acnsAdvanced Container Networking Services uppdaterar ett befintligt AKS-kluster med alla avancerade funktioner för containernätverkstjänster som innehåller containernätverksobservabilitet och funktionen Container Network Security .
Note
Endast kluster med Cilium-dataplanet stöder funktioner för containernätverkssäkerhet i Advanced Container Networking Services.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns
Hämta klusterautentiseringsuppgifter
När du har hämtat klustrets autentiseringsuppgifter med kommandot az aks get-credentials.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Azure hanterad Prometheus och Grafana
Hoppa över det här avsnittet om du använder BYO Prometheus och Grafana
Använd följande exempel för att installera och aktivera Prometheus och Grafana för ditt AKS-kluster.
Skapa Azure Monitor-resurs
#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 '{}'
Skapa Azure Managed Grafana-instans
Använd az grafana create för att skapa en Grafana-instans. Namnet på Grafana-instansen måste vara unikt.
# 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
Placera resurs-ID:t för Azure Managed Grafana och Azure Monitor i variabler
Använd az grafana show för att placera Grafana-resurs-ID:t i en variabel. Använd az resource show för att placera Azure Monitor-resurs-ID:t i en variabel. Ersätt myGrafana med namnet på grafanainstansen.
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)
Länka Azure Monitor och Azure Managed Grafana till AKS-klustret
Använd az aks update för att länka Azure Monitor- och Grafana-resurserna till ditt AKS-kluster.
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
Visualisering med Azure Managed Grafana
Hoppa över det här steget om du använder BYO Grafana
Note
Måttet hubble_flows_processed_total samlas inte in som standard på grund av hög måttkardinalitet i storskaliga kluster.
Därför har Pods Flows instrumentpanelerna paneler med saknade data. Om du vill aktivera det här måttet och fylla i saknade data måste du ändra konfigurationskartan ama-metrics-settings-configmap. Mer specifikt uppdaterar du avsnittet default-targets-metrics-keep-list. Följ stegen nedan för att uppdatera konfigurationskartan:
- Hämta den senaste konfigurationskartan ama-metrics-settings-configmap. (https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml)
- Leta upp networkobservabilityHubble = ""
- Ändra till networkobservabilityHubble = "hubble.*"
- Nu bör Pod-flödesmåtten visas.
Mer information om vad minimal inmatning är finns i dokumentationen om minimal inmatning.
Kontrollera att Azure Monitor-poddarna körs med kommandot
kubectl get pods.kubectl get pods -o wide -n kube-system | grep ama-Dina utdata bör se ut ungefär som följande exempelutdata:
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) 26hVi har skapat instrumentpanelsexempel. De finns under mappen Instrumentpaneler > i Azure Managed Prometheus . De har namn som "Kubernetes/ Networking /
<name>". Sviten med instrumentpaneler innehåller:- Kluster: visar mått på nodnivå för dina kluster.
- DNS (kluster): visar DNS-mått i ett kluster eller val av noder.
- DNS (Arbetsbelastning): visar DNS-mått för den angivna arbetsbelastningen (till exempel poddar för en DaemonSet eller distribution, till exempel CoreDNS).
- Drops (Workload): visar droppar till/från den angivna arbetsbelastningen (till exempel poddar för en distribution eller DaemonSet).
- Poddflöden (namnområde): visar L4/L7-paketflöden till/från det angivna namnområdet (dvs. poddar i namnområdet).
- Poddflöden (arbetsbelastning): visar L4/L7-paketflöden till/från den angivna arbetsbelastningen (till exempel Poddar för en distribution eller DaemonSet).
Visualisering med BYO Grafana
Hoppa över det här steget om du använder Azure-hanterad Grafana
Lägg till följande skrapjobb i din befintliga Prometheus-konfiguration och starta om Prometheus-servern:
- 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: keepUnder Mål i Prometheus, kontrollera att network-obs-pods finns.
Logga in på Grafana och importera följande exempelinstrumentpaneler med hjälp av följande ID:n:
- Kluster: visar mått på nodnivå för dina kluster. (ID: 18814)
- DNS (kluster): visar DNS-mått i ett kluster eller val av noder. (ID: 20925)
- DNS (Arbetsbelastning): visar DNS-mått för den angivna arbetsbelastningen (till exempel poddar för en DaemonSet eller distribution, till exempel CoreDNS). (ID: [20926] https://grafana.com/grafana/dashboards/20926-kubernetes-networking-dns-workload/)
- Drops (Workload): visar droppar till/från den angivna arbetsbelastningen (till exempel poddar för en distribution eller DaemonSet). (ID: 20927).
- Poddflöden (namnområde): visar L4/L7-paketflöden till/från det angivna namnområdet (dvs. poddar i namnområdet). (ID: 20928)
- Poddflöden (arbetsbelastning): visar L4/L7-paketflöden till/från den angivna arbetsbelastningen (till exempel Poddar för en distribution eller DaemonSet). (ID: 20929)
Note
- Beroende på dina Inställningar för Prometheus/Grafana-instanser kräver vissa instrumentpaneler specifika justeringar för att visa alla data.
- Cilium stöder för närvarande inte DNS-mått/instrumentpaneler.
Rensa resurser
Om du inte planerar att använda det här programmet tar du bort de andra resurser som du skapade i den här artikeln med hjälp av az group delete kommandot .
az group delete --name $RESOURCE_GROUP
Nästa steg
I den här artikeln har du lärt dig hur du installerar och aktiverar containernätverksobservabilitet för ditt AKS-kluster.
Mer information om Advanced Container Networking Services för Azure Kubernetes Service (AKS) finns i Vad är Advanced Container Networking Services för Azure Kubernetes Service (AKS)?.
Mer information om containernätverkssäkerhet och dess funktioner finns i Vad är containernätverkssäkerhet?.
Azure Kubernetes Service