Självstudie: Ansluta till en lokalt installerad Prometheus-tjänst i ett AKS-kluster med hjälp av en hanterad privat slutpunkt
Den här guiden vägleder dig genom stegen för att installera Prometheus, en verktygslåda för övervakning och aviseringar med öppen källkod, i ett AKS-kluster (Azure Kubernetes Service). Sedan använder du Azure Managed Grafanas hanterade privata slutpunkt för att ansluta till den här Prometheus-servern och visa Prometheus-data på en Grafana-instrumentpanel.
I den här självstudien lär du dig att:
- Skapa ett Azure Kubernetes Service-kluster
- Installera Prometheus
- Lägga till en privat länktjänst till Prometheus-servern
- Ansluta med hanterad privat slutpunkt
- Visa Prometheus-data på en Grafana-instrumentpanel
Förutsättningar
Kontrollera att du har följande innan du börjar:
- Ett Azure-konto
- Azure CLI.
- kubectl
- Helm
Skapa ett Azure Kubernetes Service-kluster
Logga in på Azure CLI genom att
az login
köra kommandot .az login
Om du har flera Azure-prenumerationer väljer du din Azure-prenumeration med kommandot
az account set -s <your-azure-subscription-id>
.Installera eller uppdatera kubectl.
az aks install-cli
Skapa två bash/zsh-variabler, som vi använder i efterföljande kommandon. Ändra syntaxen nedan om du använder ett annat gränssnitt.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Skapa en resursgrupp. I det här exemplet skapar vi resursgruppen i Azure-regionen USA, västra centrala.
az group create --name $RESOURCE_GROUP --location westcentralus
Skapa ett nytt AKS-kluster med kommandot az aks create . Här skapar vi ett kluster med tre noder med hjälp av den virtuella datortypen Burstable i B-serien, vilket är kostnadseffektivt och lämpligt för små test-/utvecklingsarbetsbelastningar som denna.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Den här åtgärden kan ta några minuter att slutföra.
Autentisera till klustret som du har skapat.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
Nu kan du komma åt kubernetes-klustret med kubectl.
Använd kubectl för att se de noder som du har skapat.
kubectl get nodes
Installera Prometheus
Ett populärt sätt att installera Prometheus är via prometheus-operatorn, som tillhandahåller Kubernetes intern distribution och hantering av Prometheus och relaterade övervakningskomponenter. I den här självstudien använder vi Kube-prometheus-stack Helm-diagram för att distribuera prometheus-operatorn.
Lägg till helm-charts-lagringsplatsen och uppdatera sedan lagringsplatsens lista.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Installera Helm-diagrammet i ett namnområde som kallas övervakning. Det här namnområdet skapas automatiskt.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
Helm-kommandot uppmanar dig att kontrollera statusen för de distribuerade poddarna. Kör följande kommando.
kubectl --namespace monitoring get pods
Kontrollera att poddarna körs innan du fortsätter. Om de i osannolika fall inte når körningstillståndet kanske du vill felsöka dem.
Lägga till en privat länktjänst till Prometheus-servern
Azure Private Link-tjänsten möjliggör förbrukning av kubernetes-tjänsten via privat länk i olika virtuella Azure-nätverk. AKS har en intern integrering med Azure Private Link Service och hjälper dig att kommentera ett Kubernetes-tjänstobjekt för att skapa en motsvarande privat länktjänst i Azure.
Se innehållet i filen pls-prometheus-svc.yaml nedan:
apiVersion: v1
kind: Service
metadata:
name: prom-pls-svc
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true" # Use an internal LB with PLS
service.beta.kubernetes.io/azure-pls-create: "true"
service.beta.kubernetes.io/azure-pls-name: promManagedPls
service.beta.kubernetes.io/azure-pls-proxy-protocol: "false"
service.beta.kubernetes.io/azure-pls-visibility: "*"
spec:
type: LoadBalancer
selector:
# app: myApp
app.kubernetes.io/name: prometheus
prometheus: prometheus-kube-prometheus-prometheus # note that this is related to the release name
ports:
- name: http-web
protocol: TCP
port: 9090
targetPort: 9090
Kör följande kommando för att lägga till den privata länktjänsten till Prometheus-servern.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
Den privata länktjänsten med namn
promManagedPls
skapas i den HANTERADE AKS-resursgruppen. Den här processen tar några minuter.
Ansluta med en hanterad privat slutpunkt
Om du inte har någon Azure Managed Grafana-arbetsyta än skapar du en genom att följa snabbstarten för Azure Managed Grafana.
Öppna din Azure Managed Grafana-arbetsyta och gå till Lägg till nätverkshanterad>privat slutpunkt.>
Ange ett namn för din hanterade privata slutpunkt och välj din Azure-prenumeration.
För Resurstyp väljer du Microsoft.Network/privateLinkServices (private link services) och för Målresurs väljer du den
promManagedPls
privata länktjänst som skapades i ovanstående steg. Varje hanterad privat slutpunkt får en privat IP-adress. Du kan också ange ett domännamn för den här hanterade privata slutpunkten. Azure Managed Grafana-tjänsten ser till att den här domänen matchas mot den hanterade privata slutpunktens privata IP-adress i Azure Managed Grafana-miljön. Ange till exempel domänen till*.prom.my-own-domain.com
.Godkänn den privata slutpunktsanslutningen genom att gå till resursen promManagedPls. Under Inställningar går du till Privata slutpunktsanslutningar, väljer din anslutning med hjälp av kryssrutan och Godkänner.
När den privata slutpunktsanslutningen har godkänts går du tillbaka till din Azure Managed Grafana-resurs och väljer knappen Uppdatera på fliken Hanterad privat slutpunkt för att synkronisera
Connection state
. Den bör nu visas som Godkänd.
Visa Prometheus-data på en Grafana-instrumentpanel
Lägg till Prometheus-datakällan i Grafana från Grafana-portalen. Mer information finns i Lägg till en datakälla. Vår Prometheus-URL är
http://prom-service.prom.my-own-domain.com:9090
.Om du vill utnyttja din egen värdbaserade Prometheus-datakälla kan du prova att använda instrumentpanelen Node Exporter Full , ID
1860
. Fler riktlinjer finns i Importera en instrumentpanel från Grafana Labs.
Gå vidare
Lär dig hur du använder tjänstkonton.