Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Configure alert rules with Prometheus

Última actualización: Sep 04, 2026

Escriba reglas de alerta personalizadas en PromQL para monitorear nodos del clúster, hosts, réplicas de contenedores y cargas de trabajo.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Configuración de reglas de alerta con PromQL personalizado

Tanto Alibaba Cloud Prometheus como Prometheus de código abierto admiten reglas de alerta personalizadas basadas en PromQL que activan notificaciones cuando se cumplen ciertas condiciones.

Alibaba Cloud Prometheus

Para crear una regla de alerta de Prometheus con PromQL personalizado, consulte Create a Prometheus alert rule.

Prometheus de código abierto

  1. Configure una directiva de notificación de alertas. Prometheus de código abierto admite webhooks, DingTalk y correo electrónico. Establezca el método de notificación mediante el parámetro receiver en ack-prometheus-operator. Consulte Alerting configuration.

  2. Cree una regla de alerta. Despliegue un CRD PrometheusRule en el clúster para definir las reglas de alerta (consulte Deploying Prometheus rules). El siguiente ejemplo se activa cuando el uso de CPU del nodo supera el 90 % durante un periodo de 2 minutos. El campo expr especifica la expresión PromQL y la condición de activación.

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      labels:
        # Labels must match ruleSelector.matchLabels in the Prometheus CRD.
        prometheus: example
        role: alert-rules
      name: prometheus-example-rules
    spec:
      groups:
      - name: example.rules
        rules:
        - alert: ExampleAlert
          # expr: PromQL query and trigger condition.
          # Refer to the PromQL configuration column in the alert rule tables below.
          expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 90
  3. Compruebe que la regla de alerta esté activa.

    1. Ejecute el siguiente comando para reenviar el servicio Prometheus al puerto 9090 de su computadora local: kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring

    2. Abra localhost:9090 en su navegador.

    3. Elija Status > Rules. Si la regla de alerta aparece en la página Rules, significa que está activa.

Referencia de reglas de alerta

ACK proporciona reglas de alerta recomendadas basadas en experiencia operativa, las cuales cubren estabilidad del clúster, uso de recursos de nodos y hosts, réplicas de contenedores, cargas de trabajo, almacenamiento y red.

Niveles de severidad:

  • Critical: Afecta al clúster, la aplicación o el negocio. Requiere acción inmediata.

  • Warning: Afecta al clúster, la aplicación o el negocio. Investigue con prontitud.

  • Normal: Indica un cambio importante en una función.

La columna Rule description toma como punto de entrada la pestaña Alert Rules dentro de la página Alerts . Para acceder: inicie sesión en la consola de ACK , haga clic en su clúster dentro de la lista Clusters y luego elija Operations > Alerts > Alert Rules .

Réplicas de contenedor anómalas

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

Estado de pod anómalo

Critical

`min_over_time(sum by (namespace, pod, phase) (kube_pod_status_phase{phase=~"Pending

Unknown

Failed"})[5m:1m]) > 0`

> 0

5 min

Se activa cuando un pod permanece en estado Pending, Unknown o Failed durante 5 minutos. Configure esta regla en Alert Rule Set for Pod Exceptions > Pod anomaly. Consulte Manage alerts in ACK.

Consulte Troubleshoot pod exceptions.

Error en el inicio del pod

Critical

sum_over_time(increase(kube_pod_container_status_restarts_total{}[1m])[5m:1m]) > 3

> 3 reinicios

5 min

Se activa cuando un pod se reinicia más de 3 veces en 5 minutos. Configure esta regla en Alert Rule Set for Pod Exceptions > Pod startup failures. Consulte Manage alerts in ACK.

Consulte Troubleshoot pod exceptions.

Más de 1,000 pods no programados durante 10 minutos continuos

Critical

count((min_over_time(kube_pod_status_phase{phase="Pending"}[10m]) == 1) and (count_over_time(kube_pod_status_phase{phase="Pending"}[10m:15s]) >= (10 * 4 - 1))) > 1000

> 1,000 pods

10 min

Se activa cuando más de 1,000 pods permanecen en estado Pending debido a fallos de programación durante más de 10 minutos continuos.

Puede indicar una presión excesiva en la programación. ACK Pro Edition ofrece capacidades mejoradas de programación y un SLA. Consulte Overview of ACK managed cluster Pro Edition.

Limitación frecuente de CPU del contenedor

Warning

rate(container_cpu_cfs_throttled_seconds_total[3m]) * 100 > 25

> 25% de tiempo limitado

3 min

Se activa cuando el tiempo de CPU limitado supera el 25 % durante 3 minutos. La limitación reduce las porciones de tiempo, lo que incrementa el tiempo de ejecución de los procesos y ralentiza la lógica de la aplicación.

Compruebe si el resource limit de CPU del pod es demasiado bajo. Reduzca la limitación con CPU Burst policy. En nodos multinúcleo, utilice CPU topology-aware scheduling para aprovechar al máximo los recursos fragmentados de CPU.

Uso de CPU del pod > 85 % del límite

Warning

(sum(irate(container_cpu_usage_seconds_total{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}[1m])) by (namespace,pod) / sum(container_spec_cpu_quota{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}/100000) by (namespace,pod) * 100 <= 100 or on() vector(0)) >= 85

>= 85 % del límite del pod

1 min

Se activa cuando la CPU del pod supera el 85 % de su límite. No tiene efecto si no hay un límite configurado. Umbral predeterminado: 85 %; ajústelo según sea necesario. Para filtrar, reemplace pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*" con los valores reales; elimine el filtro para consultar todos los pods.

Un uso elevado de CPU provoca limitaciones y reduce las porciones de tiempo. Compruebe si el resource limit de CPU es demasiado bajo. Consulte Enable the CPU Burst policy y Enable CPU topology-aware scheduling.

Uso de memoria del pod > 85 % del límite

Warning

((sum(container_memory_working_set_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}) by (pod,namespace) / sum(container_spec_memory_limit_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}) by (pod, namespace) * 100) <= 100 or on() vector(0)) >= 85

>= 85 % del límite del pod

—

Se activa cuando la memoria del pod supera el 85 % de su límite. No tiene efecto si no hay un límite configurado. Umbral predeterminado: 85 %; ajústelo según sea necesario.

Un uso elevado de memoria puede desencadenar terminaciones OOM y reinicios del pod. Compruebe si el resource limit de memoria es demasiado bajo. Ajuste los límites adecuadamente con Resource profiling.

Cargas de trabajo anómalas

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

Discrepancia en réplicas de Deployment

Critical

kube_deployment_spec_replicas{} != kube_deployment_status_replicas_available{}

Cualquier discrepancia

—

Se activa cuando las réplicas disponibles del Deployment no coinciden con la cantidad deseada. Configure esta regla en Alert Rule Set for Workload Exceptions > Deployment pod anomaly. Consulte Manage alerts in ACK.

Consulte Troubleshoot pod exceptions.

Discrepancia en réplicas de DaemonSet

Critical

((100 - kube_daemonset_status_number_ready{} / kube_daemonset_status_desired_number_scheduled{} * 100) or (kube_daemonset_status_desired_number_scheduled{} - kube_daemonset_status_current_number_scheduled{})) > 0

> 0

—

Se activa cuando las réplicas disponibles del DaemonSet no coinciden con la cantidad deseada. Configure esta regla en Alert Rule Set for Workload Exceptions > DaemonSet pod anomaly. Consulte Manage alerts in ACK.

Consulte Troubleshoot pod exceptions.

Error de programación de DaemonSet

Critical

kube_daemonset_status_number_misscheduled{job} > 0

> 0

—

Se activa cuando una réplica de DaemonSet se ejecuta en un nodo incorrecto. Configure esta regla en Alert Rule Set for Workload Exceptions > DaemonSet pod scheduling errors. Consulte Manage alerts in ACK.

Consulte Troubleshoot pod exceptions.

Fallo en Job

Critical

kube_job_status_failed{} > 0

> 0

—

Se activa cuando un Job falla. Configure esta regla en Alert Rule Set for Workload Exceptions > Job execution failures. Consulte Manage alerts in ACK.

Revise los registros del pod fallido para obtener detalles del error. Consulte Troubleshoot pod exceptions.

Excepciones de almacenamiento

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

Estado anómalo de PersistentVolume (PV)

Critical

`kube_persistentvolume_status_phase{phase=~"Failed

Pending"} > 0`

> 0

—

Se activa cuando un PV entra en estado Failed o Pending. Configure esta regla en Alert Rule Set for Storage Exceptions > PV anomaly. Consulte Manage alerts in ACK.

Consulte la sección de montaje de discos en FAQ about disk PVs.

Uso de disco del host > 85 %

Critical

(100 - node_filesystem_avail_bytes / node_filesystem_size_bytes * 100) >= 85

>= 85 %

—

Se activa cuando el espacio libre en disco del nodo es inferior al 15 %. Configure esta regla en Alert Rule Set for Resource Exceptions > Node - Disk usage >= 85%. Consulte Manage alerts in ACK.

Escale horizontalmente el nodo o amplíe su disco. Consulte FAQ about disk PVs.

Estado anómalo del nodo

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

Nodo en estado NotReady durante 3 minutos

Critical

(sum(max_over_time(kube_node_status_condition{condition="Ready",status="true"}[3m]) <= 0) by (node)) or (absent(kube_node_status_condition{condition="Ready",status="true"})) > 0

> 0

3 min

Se activa cuando un nodo permanece en estado NotReady durante 3 minutos. Configure esta regla en Alert Rule Set for Node Exceptions > Node changes to the unschedulable state. Consulte Manage alerts in ACK.

Determine si el estado NotReady es esperado (por ejemplo, por reemplazo o mantenimiento del nodo). Si no lo es, compruebe si los pods de la aplicación están afectados y evíctelos si es necesario. Revise las condiciones del nodo para identificar causas como presión de memoria o disco lleno.

Uso anómalo de recursos del host

Las métricas de recursos del host miden los recursos de máquinas físicas o virtuales. Uso = uso de recursos de todos los procesos / capacidad máxima del host.
Descripción Severidad PromQL Umbral Ventana Descripción de la regla Resolución de problemas común
Uso de memoria del host > 85 % Warning (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 85 >= 85 % — Se activa cuando el uso de memoria del host supera el 85 %. Configure esta regla en Alert Rule Set for Resource Exceptions > Node - Memory usage >= 85% . Consulte Manage alerts in ACK . Umbral predeterminado: 85 %; ajústelo según sea necesario.
Nota

Las reglas de alerta de ACK son proporcionadas por Cloud Monitor, con métricas consistentes con las reglas de Prometheus.

Libere recursos: revise la asignación de recursos de los pods con cost analysis y ajuste las solicitudes de memoria con resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.
Uso de memoria del host > 90 % Critical (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 90 >= 90 % — Se activa cuando el uso de memoria del host supera el 90 %. Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.
Uso de CPU del host > 85 % Warning 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 85 >= 85 % 2 min Se activa cuando el uso de CPU del host supera el 85 %. Configure esta regla en Alert Rule Set for Resource Exceptions > Node - CPU usage >= 85% .
Nota

ACK utiliza métricas de ECS de CloudMonitor, equivalentes a esta regla de Prometheus. Umbral predeterminado: 85 %; ajústelo según sea necesario. Consulte Manage alerts in ACK.

Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.
Uso de CPU del host > 90 % Critical 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 90 >= 90 % 2 min Se activa cuando el uso de CPU del host supera el 90 %. Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Recursos anómalos del nodo

Las métricas de recursos del nodo miden el consumo de recursos de los contenedores en relación con la capacidad asignable del nodo, no con la capacidad física de la máquina.
Recursos consumidos (numerador) : Total de recursos de todos los contenedores en el nodo, incluyendo memoria del conjunto de trabajo, caché de páginas, entre otros.
Recursos asignables (denominador) : Recursos disponibles para los contenedores después de restar las reservas del nodo. Consulte Node resource reservation policy .
La programación de pods se basa en las solicitudes de recursos, no en el uso real.

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

Uso de CPU del nodo > 85 %

Warning

sum(irate(container_cpu_usage_seconds_total{pod!=""}[1m])) by (node) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85

>= 85 %

1 min

Se activa cuando el uso de CPU del nodo supera el 85 % de los recursos asignables. Fórmula: Uso de recursos del nodo / Total de recursos asignables en el nodo.

Libere recursos con cost analysis y resource profiling para distribuir los pods entre los nodos. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Tasa de asignación de recursos de CPU del nodo > 85 %

Normal

(sum(sum(kube_pod_container_resource_requests{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85

>= 85 %

—

Se activa cuando la tasa de asignación de recursos de CPU supera el 85 % de los recursos asignables. Fórmula: Total de solicitudes de recursos de pods programados / Total de recursos asignables en el nodo.

Recursos insuficientes para programar más pods. Compruebe si hay desperdicio de recursos (uso real muy por debajo de las solicitudes) con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Tasa de sobreventa de CPU del nodo > 300 %

Warning

(sum(sum(kube_pod_container_resource_limits{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 300

>= 300 %

—

Se activa cuando la tasa de sobreventa de CPU supera el 300 % de los recursos asignables. Fórmula: Total de límites de recursos de pods programados / Total de recursos asignables en el nodo. El umbral de 300 % es el valor predeterminado recomendado; ajústelo según sea necesario.

Los límites totales de CPU superan ampliamente los recursos asignables. Durante picos de tráfico, la contención y la limitación pueden ralentizar las respuestas. Ajuste adecuadamente las solicitudes y límites de CPU con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Uso de memoria del nodo > 85 %

Warning

sum(container_memory_working_set_bytes{pod!=""}) by (node) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85

>= 85 %

—

Se activa cuando el uso de memoria del nodo supera el 85 % de los recursos asignables. Fórmula: Uso de recursos del nodo / Total de recursos asignables en el nodo.

Libere recursos con cost analysis y resource profiling para distribuir los pods entre los nodos. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Tasa de asignación de recursos de memoria del nodo > 85 %

Normal

(sum(sum(kube_pod_container_resource_requests{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85

>= 85 %

—

Se activa cuando la tasa de asignación de recursos de memoria supera el 85 % de los recursos asignables. Fórmula: Total de solicitudes de recursos de pods programados / Total de recursos asignables en el nodo.

Recursos insuficientes para programar más pods. Compruebe si hay desperdicio de recursos (uso real muy por debajo de las solicitudes) con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Tasa de sobreventa de memoria del nodo > 300 %

Warning

(sum(sum(kube_pod_container_resource_limits{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 300

>= 300 %

—

Se activa cuando la tasa de sobreventa de memoria supera el 300 % de los recursos asignables. Fórmula: Total de límites de recursos de pods programados / Total de recursos asignables en el nodo. El umbral de 300 % es el valor predeterminado recomendado; ajústelo según sea necesario.

Los límites totales de memoria superan ampliamente los recursos asignables. Durante picos de tráfico, la memoria puede alcanzar el límite del nodo y desencadenar terminaciones OOM que interrumpen las cargas de trabajo. Ajuste adecuadamente las solicitudes y límites de memoria con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster.

Excepciones de red

Descripción

Severidad

PromQL

Umbral

Ventana

Descripción de la regla

Resolución de problemas común

El recuento de solicitudes de CoreDNS cae a cero

Critical

(sum(rate(coredns_dns_request_count_total{}[1m]))by(server,zone)<=0) or (sum(rate(coredns_dns_requests_total{}[1m]))by(server,zone)<=0)

<= 0

1 min

Detectable únicamente en clústeres administrados ACK (ediciones Pro y Basic).

Compruebe si los pods de CoreDNS del clúster se ejecutan correctamente.

Excepción panic en CoreDNS

Critical

sum(rate(coredns_panic_count_total{}[3m])) > 0

> 0

3 min

Detectable únicamente en clústeres administrados ACK (ediciones Pro y Basic).

Compruebe si los pods de CoreDNS del clúster se ejecutan correctamente.

Certificado del controlador Ingress por vencer en 14 días

Warning

((nginx_ingress_controller_ssl_expire_time_seconds - time()) / 24 / 3600) < 14

< 14 días

—

Requiere que el componente del controlador Ingress de ACK esté instalado con la función Ingress habilitada.

Renueve el certificado del controlador Ingress.

Excepciones de Auto Scaling

Descripción Severidad PromQL Umbral Ventana Descripción de la regla Resolución de problemas común
Recuento de réplicas HPA en el máximo Warning max(kube_horizontalpodautoscaler_spec_max_replicas) by (namespace, horizontalpodautoscaler) - max(kube_horizontalpodautoscaler_status_current_replicas) by (namespace, horizontalpodautoscaler) <= 0 Diferencia <= 0 — Se activa cuando las réplicas actuales del HPA alcanzan el máximo configurado.
Nota

Habilite primero las métricas de horizontalpodautoscaler en Alibaba Cloud Prometheus; están deshabilitadas de forma predeterminada y no tienen costo.

Compruebe si la directiva HPA cumple con lo esperado. Si la carga de trabajo sigue siendo alta, aumente maxReplicas u optimice el rendimiento de la aplicación.

Siguientes pasos