Compartir vía


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:

Crear un clúster de Azure Kubernetes Service

  1. 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>.

  2. Instale o actualice kubectl.

    az aks install-cli
    
  3. 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
    
  4. 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
    
  5. 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.

  6. 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.

  7. 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.

  1. 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
    
  2. 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
    
  3. El comando helm le solicita que compruebe el estado de los pods implementados. Ejecute el siguiente comando:

    kubectl --namespace monitoring get pods
    
  4. 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.

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
  1. 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
    
  2. 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

  1. Si aún no tiene un área de trabajo de Azure Managed Grafana, cree una siguiendo el Inicio rápido de Azure Managed Grafana.

  2. Abra el área de trabajo de Azure Managed Grafana y vaya a Redes>Punto de conexión privado administrado>Agregar.

    Captura de pantalla de la plataforma Azure en la que se muestra la página de puntos de conexión privados administrados en un recurso de Azure Managed Grafana.

  3. Escriba un nombre para el punto de conexión privado administrado y seleccione la suscripción de Azure.

  4. 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.

    Captura de pantalla de la plataforma Azure en la que se muestra la información de Prometheus especificada para el nuevo punto de conexión privado administrado.

  5. 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.

    Captura de pantalla de la plataforma Azure en la que se muestra la acción Aprobar conexión.

  6. 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.

    Captura de pantalla de la plataforma Azure en la que se muestra el botón Actualizar.

Mostrar datos de Prometheus en un panel de Grafana

  1. 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.

    Captura de pantalla de la plataforma Grafana en la que se muestra cómo agregar Prometheus como origen de datos.

  2. 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.

    Captura de pantalla de la plataforma Azure Grafana en la que se muestra el panel de Prometheus de ejemplo.

Paso siguiente

Aprenda a usar cuentas de servicio.