Dela via


Samla in Istio-mått med hjälp av hanterad tjänst för Prometheus

Istio är en servicemesh med öppen källkod som lager transparent över befintliga distribuerade program. Det ger ett enhetligt och effektivt sätt att skydda, ansluta och övervaka tjänster, särskilt i en distribuerad programarkitektur.

Istio hjälper utvecklare att hantera service-till-tjänst-interaktioner genom att tillhandahålla funktioner som trafikhantering, observerbarhet, säkerhet och principframtvingande utan att ändra programkoden. Det används ofta i moderna molnbaserade program, särskilt i Kubernetes.

Azure Kubernetes Service (AKS) tillhandahåller nu ett Istio-baserat tjänstnättillägg som stöds officiellt och testas för integrering med AKS och Azure Arc-aktiverade Kubernetes.

Med funktionen Hanterad Azure Monitor-tjänst för Prometheus kan du samla in och analysera mått i stor skala. Prometheus-mått lagras i Azure Monitor-arbetsytor. Arbetsytorna stöder analysverktyg som Azure Managed Grafana, Azure Monitor Metrics Explorer med PromQL och verktyg med öppen källkod som PromQL och Grafana.

Den här artikeln innehåller stegvis vägledning om hur du använder Azure Monitor-hanterad tjänst för Prometheus för att samla in Istio-mått via det Istio-baserade tjänstnättillägget för AKS eller för Azure Arc-aktiverade Kubernetes. Sedan kan du visualisera måtten i Azure Managed Grafana.

Förutsättningar

  • Azure CLI har installerats och konfigurerats. Information om hur du installerar eller uppgraderar finns i Installera Azure CLI.

    Om du använder det Istio-baserade tjänstnättillägget för AKS behöver du Azure CLI version 2.57.0 eller senare installerat. Du kan köra az --version för att verifiera versionen.

  • Kubectl har installerats för att interagera med ditt Kubernetes-kluster.

Begränsningar

  • En lista över begränsningar med att använda det Istio-baserade service mesh-tillägget för AKS finns i översiktsartikeln om tillägget.
  • För närvarande finns det inget stöd för att samla in mått från Istio-konfigurationen med ömsesidig TLS-autentisering.
  • För närvarande finns det inget stöd för att använda Kialis tjänstnätvisualisering med den hanterade tjänsten för Prometheus.

Konfigurera Istio, hanterad tjänst för Prometheus och Azure Managed Grafana

Skapa ett AKS-kluster med hanterad tjänst för Prometheus aktiverat

Först måste du skapa ett AKS-kluster (eller använda ett befintligt) och aktivera hanterad tjänst för Prometheus och Azure Managed Grafana. Anvisningar finns i Aktivera Prometheus och Grafana i ett AKS-kluster.

Om du använder Azure CLI för att skapa ett nytt AKS-kluster kan du använda följande kommandon:

az group create --name myResourceGroup --location eastus
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2  --enable-azure-monitor-metrics --generate-ssh-keys

Konfigurera Istio

Du kan använda hanterad tjänst för Prometheus för att samla in mått från både Istio med öppen källkod och det Istio-baserade tjänstnättillägget för AKS:

Hämta AKS-autentiseringsuppgifter

az account set --subscription <subscription id>
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Konfigurera hanterad tjänst för Prometheus för att samla in Istio-mått

Om du vill samla in metadata från din Istio-konfiguration med den hanterade tjänsten för Prometheus kan du använda pod-anteckningar. Dessa anteckningar konfigureras automatiskt med Istio. Du måste aktivera podannoteringsbaserad datainsamling i en hanterad tjänst för Prometheus.

Om du vill aktivera skrapningen anpassar du konfigurationskartan i den hanterade tjänsten för Prometheus (ama-metrics-settings-configmap.yaml) för att inkludera istio-system namnområdet och namnrymderna för konfigurationen av Istio-sidovagnen. Om du till exempel konfigurerar Istio för att mata in sidovagnen i my-namespaceuppdaterar du konfigurationskartan enligt följande:

pod-annotation-based-scraping: |-
    podannotationnamespaceregex = "aks-istio-system|my-namespace"

Varning

Genom att hämta pod-anteckningar från flera namnrymder kan man generera en stor mängd metrik, beroende på hur många poddar som har anteckningar.

Mer information finns i Aktivera poddanteckningsbaserad skrapning.

Tillämpa den uppdaterade konfigurationskartan på ditt AKS-kluster:

kubectl apply -f ama-metrics-settings-configmap.yaml

Hämta Istio-mått

Måtten som skrapats från Istio lagras på Azure Monitor-arbetsytan som är associerad med hanterad tjänst för Prometheus. Du kan fråga efter metriken direkt från arbetsytan eller via Azure Managed Grafana-instansen som är ansluten till arbetsytan.

Så här visar du Istio-mått på Azure Monitor-arbetsytan:

  1. I Azure-portalen går du till ditt AKS-kluster.

  2. Under Övervakning väljer du Inställningar för Insights-övervakning>.

    Diagram som visar urval för att visa Azure Monitor-arbetsytan.

  3. Välj Azure Monitor-arbetsyteinstansen. På instansöversiktssidan väljer du avsnittet Mått för att fråga efter mått för istio_requests_total.

    Alternativt kan du välja en Azure Managed Grafana-instans. Därefter, på översiktssidan för instance, välj endpoint-URL-en. Den här åtgärden öppnar Grafana-portalen, där du kan fråga Azure Container Storage-statistiken. Datakällan konfigureras automatiskt för att du ska kunna fråga efter metrik från den associerade Azure Monitor-arbetsytan.

För att lära dig mer om att fråga efter Prometheus-metriker från en Azure Monitor-arbetsyta, se Connect Grafana to Azure Monitor Prometheus metrics.

Importera Grafana-instrumentpanelerna för Istio

Om du vill importera följande Grafana-instrumentpaneler med hjälp av ID:t eller JSON följer du anvisningarna i Importera en instrumentpanel i Grafana:

Sammanfattning

Den här artikeln visar hur du konfigurerar hanterad tjänst för Prometheus för att samla in mått från det Istio-baserade tjänstnättillägget. Den visade sedan hur du frågar efter de insamlade måtten i Azure Monitor.

Genom att följa stegen i den här artikeln kan du effektivt övervaka Istio med hjälp av hanterad tjänst för Prometheus i Azure. Den här övervakningen kan ge dig värdefulla insikter om dina programs prestanda och beteende.

Felsökning

Om du har några problem, se felsökningsinformationen för Prometheus-gränssnittet.