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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

kube-prometheus-stack

Actualización más reciente 2024-09-10 GMT+08:00

Presentación

kube-prometheus-stack utiliza Prometheus-operator y Prometheus para proporcionar capacidades de monitoreo de clúster de Kubernetes de extremo a extremo fáciles de usar.

Con este complemento, puede conectarse a Container Intelligent Analysis (CIA) para ver los datos de monitoreo y configurar alarmas.

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

Restricciones

De forma predeterminada, el componente kube-state-metrics del complemento no recopila etiquetas ni anotaciones de recursos de Kubernetes. Para recopilar estas etiquetas y anotaciones, debe habilitar manualmente la función de recopilación en los parámetros de inicio y comprobar si las métricas correspondientes se agregan a la lista blanca de recopilación de ServiceMonitor denominada kube-state-metrics. Para obtener más información, véase Recopilación de todas las etiquetas y anotaciones de un pod.

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 kube-prometheus-stack a la derecha y haga clic en Install.
  2. En la página Install Add-on, configure las especificaciones.

    • Containers: instancia de componente creada por el complemento. Para obtener más información, véase Componentes. Puede seleccionar o personalizar una especificación según sea necesario.

  3. Configuración de los parámetros relacionados.

    • Connect to Third Party: Para informar los datos de Prometheus a un sistema de monitoreo de terceros, debe introducir la dirección y el token del sistema de monitoreo de terceros y determinar si se omite la autenticación de certificado.
    • Prometheus HA: Los componentes de Prometheus-server, Prometheus-operator, thanos-query, custom-metrics-apiserver y alertmanager se despliegan en modo de varias instancias en el clúster.
    • Install Grafana: Use Grafana para visualizar los datos de monitoreo. Grafana crea un volumen de almacenamiento de 5 GiB por defecto. Desinstalar el complemento no eliminará este volumen. El nombre de usuario y la contraseña predeterminados para el primer inicio de sesión es admin. Se le pedirá que cambie la contraseña inmediatamente después de iniciar sesión.
    • Collection Period: período de recogida de datos de seguimiento.
    • Data Retention: período de conservación de los datos de seguimiento.
    • Storage: seleccione el tipo y el tamaño del disco para almacenar los datos de supervisión. La desinstalación del complemento no eliminará este volumen.
      NOTA:

      Existe un PVC disponible llamado pvc-prometheus-server en el espacio de nombres monitoring y se utilizará como fuente de almacenamiento.

  4. Haga clic en Install.

Adición de reglas de métrica personalizadas

El complemento kube-prometheus-stack de la nueva versión no proporciona métricas personalizadas. Es decir, las reglas de recopilación de métricas ya no se configuran en el ConfigMap de configuración de adaptador de usuario (adapter-config en versiones anteriores). Necesita agregar reglas de recopilación de métricas. Para obtener más información sobre cómo agregar reglas, consulte Descubrimiento de métricas y configuración de presentación. Si actualiza el complemento de una versión anterior a la nueva, las configuraciones originales se heredan y utilizan.

AVISO:

Para usar prometheus para monitorear las métricas personalizadas, la aplicación debe proporcionar una API de monitorización de métricas. Para obtener más información, véase Recopilación de datos de monitorización de Prometheus.

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster. En el panel de navegación, elija ConfigMaps and Secrets.
  2. Cambie al espacio de nombres monitoring, busque el ConfigMap user-adapter-config (adapter-config en las versiones anteriores) en la página de fichas ConfigMaps y haga clic en Update.

  3. En Data, haga clic en Edit para el archivo config.yaml para agregar una regla de recopilación de métricas personalizada bajo el campo rules. Haga clic en OK.

    Puede agregar varias reglas de recopilación agregando varias configuraciones en el campo rules. Para obtener más información, consulte Descubrimiento de métricas y configuración de presentación.

    Ejemplo de regla de métrica personalizada:
    rules:
    # The rule matches the accumulated cAdvisor metric in seconds.
    - seriesQuery: '{__name__=~"^container_.*",container!="POD",namespace!="",pod!=""}'
      resources:
        # Specify pod and namespace resources.
        overrides:
          namespace:
            resource: namespace
          pod:
            resource: pod
      name:
        # Delete the container_ prefix and _seconds_total suffix, and use the content captured in .* as the metric name.
        matches: "^container_(.*)_seconds_total$"
      # Query metrics. .Series and .LabelMatchers are available in the Go language. Use separators << and >> to avoid conflicts with the Prometheus query language.
      metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[2m])) by (<<.GroupBy>>)'
    NOTA:

    En el ejemplo anterior, solo se recopilan métricas básicas de pod. Para recopilar métricas personalizadas, consulta la guía oficial para agregar o modificar reglas.

  4. Redistribuya la carga de trabajo custom-metrics-apiserver en el espacio de nombres monitoring.

Componentes

Todos los recursos de Kubernetes creados durante la instalación del complemento kube-prometheus-stack se crean en el espacio de nombres monitoring.

Tabla 1 componentes kube-prometheus-stack

Componente del contenedor

Descripción

Tipo de recurso

prometheusOperator

(nombre de la carga de trabajo: prometheus-operator)

Despliega y gestiona el Prometheus Server basado en CRD (CustomResourceDefinitions), y monitorea y procesa los eventos relacionados con estos CRD. Es el centro de control de todo el sistema.

Deployment

prometheus

(nombre de la carga de trabajo: prometheus-server)

Un clúster de Prometheus Server desplegado por el operador basado en los CRD de Prometheus que puede considerarse StatefulSets.

StatefulSet

alertmanager

(nombre de la carga de trabajo: alertmanager-alertmanager)

Centro de alarma del complemento. Recibe alarmas enviadas por Prometheus y gestiona la información de alarmas deduplicando, agrupando y distribuyendo.

StatefulSet

thanosSidecar

Disponible solo en modo HA. Se ejecuta con prometheus-server en el mismo pod para implementar el almacenamiento persistente de datos métricos de Prometheus.

Container

thanosQuery

Disponible solo en modo HA. Entrada para la consulta de PromQL cuando Prometheus está en escenarios de HA. Puede eliminar métricas duplicadas de Store o Prometheus.

Deployment

adapter

(nobre de carga de trabajo: custom-metrics-apiserver)

Agrega métricas personalizadas al servidor nativo de la API de Kubernetes.

Deployment

kubeStateMetrics

(nombre de la carga de trabajo: kube-state-metrics)

Convierte los datos de métricas de Prometheus en un formato que las API de Kubernetes pueden identificar. De forma predeterminada, el componente kube-state-metrics no recopila todas las etiquetas y anotaciones de los recursos de Kubernetes. Para recopilar todas las etiquetas y anotaciones, consulte Recopilación de todas las etiquetas y anotaciones de un pod.

Deployment

nodeExporter

(nombre de la carga de trabajo: node-exporter)

Se despliega en cada nodo para recopilar datos de monitoreo de nodo.

DaemonSet

grafana

(nombre de la carga de trabajo: grafana)

Visualiza los datos de monitoreo. grafana crea un volumen de almacenamiento de 5 GiB por defecto. La desinstalación del complemento no eliminará este volumen.

Deployment

clusterProblemDetector

(nombre de la carga de trabajo: cluster-problem-detector)

Supervisa las excepciones del clúster.

Deployment

Acceso a Grafana

Si Grafana se instala durante la instalación del complemento, puede acceder al nodo a través del Service llamado grafana que es un Service de NodePort. Si se accede al nodo desde una red externa, puede vincular una EIP al nodo y acceder al nodo a través del puerto del nodo.

Como se muestra en la siguiente figura, la dirección de acceso es http://{{Node IP address}}:30913.

Recopilación de todas las etiquetas y anotaciones de un pod

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster. En el panel de navegación, elija Workloads.
  2. Cambie al espacio de nombres monitoring, busque la carga de trabajo kube-state-metrics en la página de ficha Deployments y haga clic en Upgrade en la columna Operation.
  3. En el área Lifecycle de la configuración del contenedor, edite el comando de inicio.

    Agregue la siguiente información al final del parámetro original de inicio kube-state-metrics:
    --metric-labels-allowlist=pods=[*],nodes=[node,failure-domain.beta.kubernetes.io/zone,topology.kubernetes.io/zone]
    Para recopilar anotaciones, agregue parámetros en los parámetros de inicio de la misma manera.
    --metric-annotations-allowlist=pods=[*],nodes=[node,failure-domain.beta.kubernetes.io/zone,topology.kubernetes.io/zone]
    AVISO:

    Al editar el comando de inicio, no modifique otros parámetros de inicio originales. De lo contrario, el componente puede ser anormal.

  4. kube-state-metrics comienza a recopilar las etiquetas/anotaciones de pods y nodos y comprueba si kube_pod_labels/kube_pod_annotations está en la tarea de recopilación de CloudScope.

    kubectl get servicemonitor kube-state-metrics -nmonitoring -oyaml | kube_pod_labels

Para obtener más parámetros de inicio de kube-state-metrics, consulte kube-state-metrics/cli-arguments.

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

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

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)

3.5.1

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

2.35.0

3.5.0

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

2.35.0

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios