Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak skonfigurować obserwowalność sieci kontenerów dla usługi Azure Kubernetes Service (AKS) przy użyciu zarządzanych rozwiązań Prometheus i Grafana oraz BYO Prometheus i Grafana, a także jak wizualizować zebrane metryki.
Kontenerowa Obserwowalność Sieci umożliwia zbieranie danych dotyczących ruchu sieciowego klastrów AKS. Umożliwia ona scentralizowaną platformę do monitorowania kondycji aplikacji i sieci. Obecnie wskaźniki są przechowywane w Prometheusie, a Grafana służy do ich wizualizacji. Możliwość obserwowania sieci kontenerów umożliwia również włączenie usługi Hubble. Funkcje te są obsługiwane zarówno w przypadku klastrów Cilium, jak i innych niż Cilium.
Obserwacja sieci kontenerów jest jedną z funkcji usług Advanced Container Networking Services. Aby uzyskać więcej informacji na temat usług Advanced Container Networking Services dla usługi Azure Kubernetes Service (AKS), zobacz Co to jest usługa Advanced Container Networking Services dla usługi Azure Kubernetes Service (AKS)?
Ważne
Począwszy od 30 listopada 2025 r., usługa Azure Kubernetes Service (AKS) nie obsługuje już ani nie zapewnia aktualizacji zabezpieczeń dla systemu Azure Linux 2.0. Obraz węzła systemu Linux 2.0 platformy Azure został zamrożony w wersji 202512.06.0. Od 31 marca 2026 r. obrazy węzłów zostaną usunięte i nie będzie można skalować pul węzłów. Przeprowadź migrację do obsługiwanej wersji systemu Linux platformy Azure, uaktualniając pule węzłów do obsługiwanej wersji rozwiązania Kubernetes lub migrując do systemu osSku AzureLinux3. Aby uzyskać więcej informacji, zapoznaj się z zgłoszeniem dotyczącym wycofania na GitHubie i ogłoszeniem o wycofaniu aktualizacji platformy Azure. Aby być na bieżąco z ogłoszeniami i aktualizacjami, śledź informacje o wersji usługi AKS.
Prerequisites
- Konto Azure z aktywną subskrypcją. Jeśli go nie masz, przed rozpoczęciem utwórz bezpłatne konto .
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
- Minimalna wersja interfejsu wiersza polecenia platformy Azure wymagana do wykonania kroków w tym artykule to 2.56.0. Uruchom
az --version, aby znaleźć wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Włącz usługi zaawansowanej sieci kontenerowej
Aby kontynuować, musisz mieć klaster usługi AKS z włączoną usługą Advanced Container Networking Services .
Polecenie az aks create z flagą --enable-acns Advanced Container Networking Services tworzy nowy klaster AKS ze wszystkimi funkcjami Advanced Container Networking Services. Obejmują one następujące funkcje:
Obserwowanie sieci kontenerów: zapewnia wgląd w ruch sieciowy. Aby dowiedzieć się więcej, odwiedź stronę Obserwacja sieci kontenerów.
Zabezpieczenia sieci kontenerów: oferuje funkcje, takie jak filtrowanie FQDN. Aby dowiedzieć się więcej, odwiedź stronę Zabezpieczenia sieci kontenerów.
Note
Klastry z płaszczyzną danych Cilium obsługują obserwowalność sieci kontenerów i zabezpieczenia sieci kontenerów, począwszy od wersji 1.29 platformy Kubernetes.
# 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
Włączanie usług Advanced Container Networking Services w istniejącym klastrze
Polecenie az aks update z flagą --enable-acns Advanced Container Networking Services aktualizuje istniejący klaster AKS, dodając wszystkie funkcje Advanced Container Networking Services, w tym obserwowalność sieci kontenerów oraz funkcję zabezpieczania sieci kontenerów.
Note
Tylko klastry z płaszczyzną danych Cilium obsługują funkcje zabezpieczeń sieci kontenerów usługi Advanced Container Networking Services.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns
Pobieranie poświadczeń klastra
Gdy już uzyskasz poświadczenia klastra za pomocą polecenia az aks get-credentials.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Zarządzane przez platformę Azure rozwiązania Prometheus i Grafana
Pomiń tę sekcję, jeśli używasz rozwiązania BYO Prometheus i Grafana
Użyj poniższego przykładu, aby zainstalować i aktywować Prometheus i Grafana w swoim klastrze AKS.
Tworzenie zasobu usługi Azure Monitor
#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 '{}'
Utwórz instancję Azure Managed Grafana
Użyj az grafana create, aby utworzyć wystąpienie Grafana. Nazwa instancji Grafana musi być unikatowa.
# 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
Identyfikatory zasobów usługi Azure Managed Grafana i Azure Monitor umieść w zmiennych
Użyj polecenia az grafana show, aby w zmiennej umieścić identyfikator zasobu Grafana. Użyj polecenia az resource show, aby umieścić identyfikator zasobu usługi Azure Monitor w zmiennej. Zastąp myGrafana nazwą wystąpienia narzędzia 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)
Łączenie usług Azure Monitor i Azure Managed Grafana z klastrem usługi AKS
Użyj az aks update aby połączyć zasoby Azure Monitor i Grafana z klastrem 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
Wizualizacja przy użyciu narzędzia Azure Managed Grafana
Pomiń ten krok, jeśli używasz narzędzia BYO Grafana
Note
Metryka hubble_flows_processed_total nie jest zbierana domyślnie ze względu na wysoką kardynalność metryk w klastrach na dużą skalę.
W związku z tym Panele sterowania Ruchy Podów mają panele z brakującymi danymi. Aby włączyć tę metrykę i wypełnić brakujące dane, należy zmodyfikować mapę ama-metrics-settings-configmap. W szczególności zaktualizuj sekcję default-targets-metrics-keep-list. Wykonaj poniższe kroki, aby zaktualizować configmap:
- Pobierz najnowszy ama-metrics-settings-configmap. (https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml)
- Zlokalizuj networkobservabilityHubble = ""
- Zmień ją na networkobservabilityHubble = "hubble.*"
- Teraz powinny zostać wypełnione metryki przepływu zasobnika.
Aby dowiedzieć się więcej na temat minimalnego pozyskiwania, proszę zapoznać się z dokumentacją minimalnego pozyskiwania.
Aby upewnić się, że zasobniki usługi Azure Monitor są uruchomione, użyj polecenia
kubectl get pods.kubectl get pods -o wide -n kube-system | grep ama-Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
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) 26hUtworzyliśmy przykładowe pulpity nawigacyjne. Znajdują się one w folderze Tablice > Azure Managed Prometheus. Mają nazwy takie jak "Kubernetes / Networking /
<name>". Pakiet pulpitów nawigacyjnych obejmuje:- Klastry: przedstawia metryki na poziomie węzła dla klastrów.
- DNS (Klaster): wyświetla metryki DNS w klastrze lub w wybranych węzłach.
- DNS (obciążenie): pokazuje metryki DNS dla określonego obciążenia (na przykład Pody DaemonSet lub wdrożeń, takich jak CoreDNS).
- Spadki (Obciążenie): pokazuje spadki związane z określonym obciążeniem, np. zasobniki używane przez wdrożenie lub DaemonSet.
- Przepływy zasobników (przestrzeń nazw): pokazuje przepływy pakietów L4/L7 do/z określonej przestrzeni nazw (tj. zasobniki w przestrzeni nazw).
- Przepływy zasobników (obciążenie): pokazuje przepływy pakietów L4/L7 przychodzące do i wychodzące z określonego obciążenia (na przykład zasobniki wdrożenia lub DaemonSet).
Wizualizacja przy użyciu narzędzia BYO Grafana
Pomiń ten krok, jeśli korzystasz z zarządzanej przez platformę Azure narzędzia Grafana
Dodaj następujące zadanie zeskrobania do istniejącej konfiguracji rozwiązania Prometheus i uruchom ponownie serwer 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: keepW sekcji Targets Prometheusa, sprawdź, czy obecne są network-obs-pods.
Zaloguj się do aplikacji Grafana i zaimportuj następujące przykładowe pulpity nawigacyjne przy użyciu następujących identyfikatorów:
- Klastry: przedstawia metryki na poziomie węzła dla klastrów. (IDENTYFIKATOR: 18814)
- SYSTEM DNS (klaster): wyświetla metryki DNS w klastrze lub wybrane węzły. (IDENTYFIKATOR: 20925)
- DNS (obciążenie): pokazuje metryki DNS dla określonego obciążenia (na przykład Pody DaemonSet lub wdrożeń, takich jak CoreDNS). (IDENTYFIKATOR: [20926] https://grafana.com/grafana/dashboards/20926-kubernetes-networking-dns-workload/)
- Spadki (Obciążenie): pokazuje spadki do/z określonego obciążenia (na przykład zasobniki Deploymentu lub DaemonSet). (IDENTYFIKATOR: 20927).
- Przepływy zasobników (przestrzeń nazw): pokazuje przepływy pakietów L4/L7 do/z określonej przestrzeni nazw (tj. zasobniki w przestrzeni nazw). (IDENTYFIKATOR: 20928)
- Przepływy zasobników (obciążenie): pokazuje przepływy pakietów L4/L7 przychodzące do i wychodzące z określonego obciążenia (na przykład zasobniki wdrożenia lub DaemonSet). (IDENTYFIKATOR: 20929)
Note
- W zależności od ustawień instancji Prometheus/Grafana niektóre panele pulpitu nawigacyjnego wymagają specyficznych dostosowań, aby wyświetlić wszystkie dane.
- Cilium nie obsługuje obecnie metryk/paneli kontrolnych DNS.
Uprzątnij zasoby
Jeśli nie planujesz korzystania z tej aplikacji, usuń inne zasoby utworzone w tym artykule przy użyciu az group delete polecenia .
az group delete --name $RESOURCE_GROUP
Dalsze kroki
W tym artykule dowiesz się, jak zainstalować i włączyć obserwowalność sieci kontenerów dla klastra usługi AKS.
Aby uzyskać więcej informacji na temat usług Advanced Container Networking Services dla usługi Azure Kubernetes Service (AKS), zobacz Co to jest usługa Advanced Container Networking Services dla usługi Azure Kubernetes Service (AKS)?.
Aby uzyskać więcej informacji na temat zabezpieczeń sieci kontenera i jej możliwości, zobacz Co to jest zabezpieczenia sieci kontenera?.