Tutorial: Conexión a un servicio Prometheus autohospedado en un clúster de AKS mediante un punto de conexión privado administrado
Esta guía le guía por los pasos para instalar Prometheus, un kit de herramientas de supervisión y alertas de código abierto, en un clúster de Azure Kubernetes Service (AKS). Después, usará el punto de conexión privado administrado de Azure Managed Grafana para conectarse a este servidor de Prometheus y mostrar los datos de Prometheus en un panel de Grafana.
En este tutorial, aprenderá a:
- Crear un clúster de Azure Kubernetes Service
- Instalación de Prometheus.
- Agregar un servicio de vínculo privado al servidor Prometheus
- Conexión con punto de conexión privado administrado
- Mostrar datos de Prometheus en un panel de Grafana
Requisitos previos
Antes de comenzar, asegúrese de que dispone de lo siguiente:
- Una cuenta de Azure
- La CLI de Azure.
- kubectl
- Helm
Crear un clúster de Azure Kubernetes Service
Inicie sesión en la CLI de Azure mediante la ejecución del comando
az login
.az login
Si tiene varias suscripciones de Azure, seleccione la suscripción de Azure con el comando
az account set -s <your-azure-subscription-id>
.Instale o actualice kubectl.
az aks install-cli
Cree dos variables de bash/zsh, que usaremos en comandos posteriores. Cambie la sintaxis siguiente si usa otro shell.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Cree un grupo de recursos. En este ejemplo, creamos el grupo de recursos en la región centro-oeste de EE. UU. de Azure.
az group create --name $RESOURCE_GROUP --location westcentralus
Cree un nuevo clúster de AKS mediante el comando az aks create. Aquí se crea un clúster de tres nodos mediante el tipo de máquina virtual ampliable de la serie B, que es rentable y adecuado para cargas de trabajo pequeñas de pruebas y desarrollo, como esta.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Esta operación puede tardar varios minutos en completarse.
Autentíquese en el clúster que ha creado.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
Ahora puede acceder al clúster de Kubernetes con kubectl.
Use kubectl para ver los nodos que ha creado.
kubectl get nodes
Instalación de Prometheus.
Una forma popular de instalar Prometheus es a través del operador prometheus, que proporciona implementación y administración nativa de Kubernetes de Prometheus y componentes de supervisión relacionados. En este tutorial, usamos gráficos de Helm kube-prometheus-stack para implementar el operador prometheus.
Agregue el repositorio helm-charts y actualice la lista de repositorios.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Instale el gráfico de Helm en un espacio de nombres denominado supervisión. Este espacio de nombres se crea automáticamente.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
El comando helm le solicita que compruebe el estado de los pods implementados. Ejecute el siguiente comando:
kubectl --namespace monitoring get pods
Asegúrese de que todos los pods "En ejecución" antes de continuar. Si en las circunstancias poco probables no llegan al estado en ejecución, es posible que quiera solucionarlos.
Agregar un servicio de vínculo privado al servidor Prometheus
El Servicio Azure Private Link permite el consumo del servicio Kubernetes a través del vínculo privado en diferentes redes virtuales de Azure. AKS tiene una integración nativa con el servicio Azure Private Link y le ayuda a anotar un objeto de servicio de Kubernetes para crear un servicio de vínculo privado correspondiente dentro de Azure.
Vea debajo el contenido del archivo 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
Ejecute el siguiente comando para agregar el servicio de vínculo privado al servidor de Prometheus.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
El servicio de vínculo privado con nombre
promManagedPls
se ha creado en el grupo de recursos administrados AKS. Este proceso tarda unos minutos.
Conexión con punto de conexión privado administrado
Si aún no tiene un área de trabajo de Azure Managed Grafana, cree una siguiendo el Inicio rápido de Azure Managed Grafana.
Abra el área de trabajo de Azure Managed Grafana y vaya a Redes>Punto de conexión privado administrado>Agregar.
Escriba un nombre para el punto de conexión privado administrado y seleccione la suscripción de Azure.
En Tipo de recurso, seleccione Microsoft.Network/privateLinkServices (Servicios de Vínculo privado), y en Recurso de destino, seleccione el
promManagedPls
servicio de vínculo privado creado en el paso anterior. Cada punto de conexión privado administrado obtiene una dirección IP privada. También puede proporcionar un nombre de dominio para este punto de conexión privado administrado. El servicio Azure Managed Grafana garantiza que este dominio se resuelva en la dirección IP privada del punto de conexión privado administrado dentro del entorno de Grafana administrado de Azure. Por ejemplo, establezca el dominio en*.prom.my-own-domain.com
.Para aprobar la conexión de punto de conexión privado, vaya al recurso promManagedPls. En Configuración, vaya a Conexiones de punto de conexión privado, active la conexión con la casilla y Aprobar.
Una vez aprobada la conexión de punto de conexión privado, vuelva al recurso de Azure Managed Grafana y seleccione el botón Actualizar en la pestaña Punto de conexión privado administrado para sincronizar
Connection state
. Ahora debería mostrarse como Aprobado.
Mostrar datos de Prometheus en un panel de Grafana
Agregue el origen de datos de Prometheus a Grafana desde el portal de Grafana. Para obtener más información, vaya a Agregar un origen de datos. Nuestra dirección URL de Prometheus es
http://prom-service.prom.my-own-domain.com:9090
.Para sacar provecho del origen de datos Prometheus autohospedado, pruebe a usar panel completo de Node Exporter, id
1860
. Para obtener más instrucciones, vaya a Importar un panel desde Grafana Labs.
Paso siguiente
Aprenda a usar cuentas de servicio.