Zelfstudie: verbinding maken met een zelf-hostende Prometheus-service op een AKS-cluster met behulp van een beheerd privé-eindpunt
In deze handleiding wordt u begeleid bij de stappen voor het installeren van Prometheus, een opensource-bewakings- en waarschuwingstoolkit, op een AKS-cluster (Azure Kubernetes Service). Vervolgens gebruikt u het beheerde privé-eindpunt van Azure Managed Grafana om verbinding te maken met deze Prometheus-server en de Prometheus-gegevens weer te geven in een Grafana-dashboard.
In deze zelfstudie leert u het volgende:
- Een Azure Kubernetes Service-cluster maken
- Prometheus installeren
- Een Private Link-service toevoegen aan de Prometheus-server
- Verbinding maken met beheerd privé-eindpunt
- Prometheus-gegevens weergeven in een Grafana-dashboard
Vereisten
Voordat u begint, controleert u of u het volgende hebt:
- Een Azure-account
- De Azure CLI.
- kubectl
- Helm
Een Azure Kubernetes Service-cluster maken
Meld u aan bij de Azure CLI door de opdracht uit te
az login
voeren.az login
Als u meerdere Azure-abonnementen hebt, selecteert u uw Azure-abonnement met de opdracht
az account set -s <your-azure-subscription-id>
.Installeer of werk kubectl bij.
az aks install-cli
Maak twee bash-/zsh-variabelen, die we in de volgende opdrachten gaan gebruiken. Wijzig de onderstaande syntaxis als u een andere shell gebruikt.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Maak een resourcegroep. In dit voorbeeld maken we de resourcegroep in de Azure-regio VS - west-centraal.
az group create --name $RESOURCE_GROUP --location westcentralus
Maak een nieuw AKS-cluster met behulp van de opdracht az aks create . Hier maken we een cluster met drie knooppunten met behulp van het type virtuele machine van de B-serie Burstable. Dit is rendabel en geschikt voor kleine test-/ontwikkelworkloads, zoals deze.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Deze bewerking kan enkele minuten duren.
Verifieer bij het cluster dat u hebt gemaakt.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
U hebt nu toegang tot uw Kubernetes-cluster met kubectl.
Gebruik kubectl om de knooppunten te zien die u hebt gemaakt.
kubectl get nodes
Prometheus installeren
Een populaire manier om Prometheus te installeren is via de prometheus-operator, die kubernetes systeemeigen implementatie en beheer van Prometheus en gerelateerde bewakingsonderdelen biedt. In deze zelfstudie gebruiken we kube-prometheus-stack Helm-grafieken om de prometheus-operator te implementeren.
Voeg de helm-charts-opslagplaats toe en werk vervolgens de lijst met opslagplaatsen bij.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Installeer de Helm-grafiek in een naamruimte met de naam Bewaking. Deze naamruimte wordt automatisch gemaakt.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
Met de Helm-opdracht wordt u gevraagd om de status van de geïmplementeerde pods te controleren. Voer de volgende opdracht uit.
kubectl --namespace monitoring get pods
Zorg ervoor dat de pods worden uitgevoerd voordat u doorgaat. Als ze in de onwaarschijnlijke omstandigheden niet de status Actief bereiken, kunt u deze problemen oplossen.
Een Private Link-service toevoegen aan de Prometheus-server
De Azure Private Link-service maakt het verbruik van uw Kubernetes-service mogelijk via private link in verschillende virtuele Azure-netwerken. AKS heeft een systeemeigen integratie met Azure Private Link Service en helpt u aantekeningen te maken bij een Kubernetes-serviceobject om een bijbehorende Private Link-service in Azure te maken.
Zie hieronder de inhoud van het bestand pls-prometheus-svc.yaml:
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
Voer de volgende opdracht uit om de private link-service toe te voegen aan de Prometheus-server.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
De private link-service met de naam
promManagedPls
wordt gemaakt in de beheerde AKS-resourcegroep. Dit duurt enkele minuten.
Verbinding maken met een beheerd privé-eindpunt
Als u nog geen Azure Managed Grafana-werkruimte hebt, maakt u er een door de quickstart voor Azure Managed Grafana te volgen.
Open uw Azure Managed Grafana-werkruimte en ga naar Het toevoegen van beheerde privé-eindpunten>voor netwerken.>
Voer een naam in voor uw beheerde privé-eindpunt en selecteer uw Azure-abonnement.
Selecteer voor resourcetype Microsoft.Network/privateLinkServices (Private Link-services) en selecteer voor doelresource de
promManagedPls
private link-service die u in de bovenstaande stap hebt gemaakt. Elk beheerd privé-eindpunt krijgt een privé-IP-adres. U kunt ook een domeinnaam opgeven voor dit beheerde privé-eindpunt. De Azure Managed Grafana-service zorgt ervoor dat dit domein wordt omgezet in het privé-IP-adres van het beheerde privé-eindpunt in de Azure Managed Grafana-omgeving. Stel bijvoorbeeld het domein in op*.prom.my-own-domain.com
.Keur de privé-eindpuntverbinding goed door naar de promManagedPls-resource te gaan. Selecteer onder Instellingen privé-eindpuntverbindingen uw verbinding met behulp van het selectievakje en Goedkeuren.
Nadat de privé-eindpuntverbinding is goedgekeurd, gaat u terug naar uw Azure Managed Grafana-resource en selecteert u de knop Vernieuwen op het tabblad Beheerd privé-eindpunt om het
Connection state
te synchroniseren. Deze moet nu worden weergegeven als Goedgekeurd.
Prometheus-gegevens weergeven in een Grafana-dashboard
Voeg de Prometheus-gegevensbron toe aan Grafana vanuit uw Grafana-portal. Ga naar Een gegevensbron toevoegen voor meer informatie. Onze Prometheus-URL is
http://prom-service.prom.my-own-domain.com:9090
.Als u gebruik wilt maken van uw zelf-hostende Prometheus-gegevensbron, gebruikt u het dashboard Volledig knooppuntexporteur, id
1860
. Ga voor meer richtlijnen naar Een dashboard importeren vanuit Grafana Labs.
Volgende stap
Meer informatie over het gebruik van serviceaccounts.