Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-10 GMT+08:00

prometheus

Presentación

Prometheus es un marco de monitoreo y alerta de sistema de código abierto. Se deriva del sistema de monitoreo borgmon de Google, que fue creado por ex empleados de Google que trabajaban en SoundCloud en 2012. Prometheus fue desarrollado como un proyecto comunitario de código abierto y lanzado oficialmente en 2015. En 2016, Prometheus se unió oficialmente a la Cloud Native Computing Foundation, después de Kubernetes.

CCE le permite instalar rápidamente Prometheus como complemento.

Página web oficial de Prometheus: https://prometheus.io/

Comunidad de código abierto: https://github.com/prometheus/prometheus

Notas y restricciones

El complemento de prometheus solo se admite en clústeres de v1.21 y anteriores.

Funciones

Como marco de supervisión de próxima generación, Prometheus tiene las siguientes características:

  • Potente modelo de datos multidimensional
    1. Los datos de series temporales se identifican por el nombre de la métrica y el par clave-valor.
    2. Se pueden establecer etiquetas multidimensionales para todas las métricas.
    3. Los modelos de datos no requieren cadenas de caracteres separadas por puntos.
    4. Los modelos de datos se pueden agregar, cortar y cortar.
    5. Se admite el formato de punto flotante doble. Todas las etiquetas se pueden establecer en unicode.
  • Instrucción de consulta flexible y potente (PromQL): Una instrucción de consulta admite la adición, la multiplicación y la conexión para múltiples métricas.
  • Fácil de gestionar: El servidor de Prometheus es un archivo binario independiente que puede funcionar localmente. No depende del almacenamiento distribuido.
  • Eficiente: Cada punto de muestreo ocupa solo 3.5 bytes, y un servidor de Prometheus puede procesar millones de métricas.
  • El modo de extracción se utiliza para recopilar datos de series de tiempo, lo que facilita las pruebas locales y evita que los servidores defectuosos empujen métricas incorrectas.
  • Los datos de series temporales se pueden enviar al servidor de Prometheus en el modo de gateway push.
  • Los usuarios pueden obtener los destinos supervisados mediante la detección de servicios o la configuración estática.
  • Múltiples GUI visuales están disponibles.
  • Fácil de escalar

Como los datos recopilados pueden perderse, Prometheus no es aplicable si existe un alto requisito de exactitud de los datos recopilados. Sin embargo, Prometheus tiene grandes ventajas de consulta si se utiliza para registrar datos de series temporales. Además, Prometheus es aplicable a la arquitectura de microservicios.

Instalación del complemento

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster. Elija Add-ons en el panel de navegación, localice prometheus a la derecha y haga clic en Install.
  2. En el paso Configuration, establezca los siguientes parámetros:

    Tabla 1 parámetros del complemento prometheus

    Parámetro

    Descripción

    Add-on Specifications

    Seleccione una especificación adicional basada en los requisitos de servicio. Las opciones son las siguientes:

    • Demo(<= 100 contenedores): El tipo de especificación es aplicable al entorno de demostración de experiencia y función. En esta memoria descriptiva, Prometheus ocupa pocos recursos pero tiene capacidades de procesamiento limitadas. Se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda de 100.
    • Small(<= 2000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda 2,000.
    • Medium(<= 5000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda 5,000.
    • Large(> 5000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster supera a 5,000.

    Instances

    Número de pods que se crearán para que coincidan con las especificaciones del complemento seleccionado. El número no se puede modificar.

    Container

    Cuotas de CPU y memoria del contenedor permitidas para las especificaciones de complemento seleccionadas. Las cuotas no se pueden modificar.

    Data Retention (days)

    Número de días para almacenar datos de monitoreo personalizados. El valor predeterminado es 15 días.

    Storage

    Los discos duros en la nube se pueden utilizar como almacenamiento. Establezca los siguientes parámetros según se le solicite:

    • AZ: Establezca este parámetro en función de los requisitos del sitio. Una AZ es una región física donde los recursos utilizan las fuentes de alimentación y las redes independientes. Las AZ están físicamente aisladas, pero se interconectan a través de una red interna.
    • Disk Type: Se admiten E/S comunes, E/S altas y E/S ultraaltas.
    • Capacity: Introduzca la capacidad de almacenamiento en función de los requisitos de servicio. El valor predeterminado es 10 GB.
    NOTA:

    Si ya existe un PVC en la supervisión del espacio de nombres, el almacenamiento configurado se utilizará como origen de almacenamiento.

  3. Haga clic en Install. Después de la instalación, el complemento despliega las siguientes instancias en el clúster.

    • prometheus-operator: despliega y gestiona el Prometheus Server basado en CRD (CustomResourceDefinitions), y monitoriza y procesa los eventos relacionados con estos CRD. Es el centro de control de todo el sistema.
    • prometheus (servidor): un clúster de servidor de Prometheus desplegado por el operador basado en los CRD de Prometheus que puede considerarse StatefulSets.
    • prometheus-kube-state-metrics: convierte los datos de la métrica de Prometheus en un formato que puede ser identificado por las API de Kubernetes.
    • custom-metrics-apiserver: agrega métricas personalizadas al servidor nativo de la API de Kubernetes.
    • prometheus-node-exporter: desplegado en cada nodo para recopilar datos de monitorización de nodos.
    • grafana: visualiza los datos de monitorización.

Proporcionar métricas de recursos

Las métricas de recursos de contenedores y nodos, como el uso de CPU y memoria, se pueden obtener con la API de métricas de Kubernetes. Se puede acceder directamente a las métricas de recursos, por ejemplo, mediante el comando kubectl top, o utilizar las políticas HPA o CustomedHPA personalizadas para el ajuste automático.

El complemento puede proporcionar la API de Kubernetes Metrics que está deshabilitada de forma predeterminada. Para habilitar la API, cree el siguiente objeto de APIService:

apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  labels:
    app: custom-metrics-apiserver
    release: cceaddon-prometheus
  name: v1beta1.metrics.k8s.io
spec:
  group: metrics.k8s.io
  groupPriorityMinimum: 100
  insecureSkipTLSVerify: true
  service:
    name: custom-metrics-apiserver
    namespace: monitoring
    port: 443
  version: v1beta1
  versionPriority: 100

Puede guardar el objeto como un archivo, nombrarlo metrics-apiservice.yaml y ejecutar el siguiente comando:

kubectl create -f metrics-apiservice.yaml

Ejecute el comando kubectl top. Si se muestra la siguiente información, se puede acceder a la API de métricas:

# kubectl top pod -n monitoring
NAME                                                      CPU(cores)   MEMORY(bytes)
......
custom-metrics-apiserver-d4f556ff9-l2j2m                  38m          44Mi
......

Para desinstalar el complemento, ejecute el siguiente comando kubectl y elimine el objeto APIService. De lo contrario, el complemento de metrics-server no se puede instalar debido a los recursos APIService residuales.

kubectl delete APIService v1beta1.metrics.k8s.io

Referencia

Historial de cambios

Tabla 2 Versiones de complementos de CCE

Versión del complemento

Versión de clúster admitida

Versión de la comunidad (solo para clústeres de v1.17 y posteriores)

2.23.32

/v1.(17|19|21).*/

2.10.0

2.23.31

/v1.15.*/

2.10.0

2.23.30

/v1.(17|19|21).*/

2.10.0

2.21.14

/v1.(17|19|21).*/

2.10.0

2.21.12

/v1.15.*/

2.10.0

2.21.11

/v1.(17|19).*/

2.10.0

1.15.1

/v1.(15|17).*/

2.10.0