Pods de métricas de Apigee con el estado CrashLoopBackOff

Estás consultando la documentación de Apigee y Apigee Hybrid.
No hay documentación equivalente de Apigee Edge sobre este tema.

Síntoma

Al iniciarse, los pods de métricas permanecen en el estado CrashLoopBackoff. Esto puede provocar que haya lagunas periódicas en sus métricas o gráficos mientras se reinician los pods. Esto también puede provocar discrepancias con los datos de Analytics, ya que faltarán algunas secciones de datos.

Este problema puede producirse si tu instalación híbrida genera una gran cantidad de datos de métricas. Se puede generar una gran cantidad de datos debido a una carga de tráfico elevada (lo que da lugar a un gran número de recursos subyacentes, por ejemplo, MPs que emiten métricas) o a un gran número de recursos de Apigee (por ejemplo, proxies, destinos, entornos, políticas, etc.) que se monitorizan.

Mensajes de error

Cuando usas kubectl para ver los estados de los pods, observas que uno o varios MetricPods están en el estado CrashLoopBackoff. Por ejemplo:

kubectl get pods -n NAMESPACE
NAME                                              READY   STATUS            RESTARTS   AGE

apigee-metrics-default-telemetry-proxy-1a2b3c4    0/1     CrashLoopBackoff  10         10m
apigee-metrics-adapter-apigee-telemetry-a2b3c4d   0/1     CrashLoopBackoff  10         10m
...

Posibles motivos

Causa Descripción Instrucciones para solucionar problemas aplicables a
Los pods de métricas se quedan sin memoria Los pods de telemetría están en CrashLoopBackoff debido a que no tienen suficiente memoria Apigee Hybrid

Causa 1

Los pods de métricas se quedan sin memoria (OOM) con el motivo de error OOMKilled.

Diagnóstico

Comprueba que el problema se produce inspeccionando los registros del pod:

  1. Lista los pods para obtener el ID del pod de métricas que está fallando:
    kubectl get pods -n APIGEE_NAMESPACE -l "app in (app, proxy, collector)"
  2. Consulta el registro del pod que falla:
    kubectl -n APIGEE_NAMESPACE describe pods POD_NAME

Por ejemplo:

kubectl describe -n apigee pods apigee-metrics-default-telemetry-proxy-1a2b3c4

Investiga la sección apigee-prometheus-agg del resultado. Una salida como la siguiente indica que el contenedor está alcanzando repetidamente una condición de falta de memoria:

Containers:
  apigee-prometheus-agg:
    Container ID:  docker://cd893dbb06c2672c41a7d6f3f7d0de4d76742e68cef70d4250bf2d5cdfcdeae6
    Image:         us.gcr.io/apigee-saas-staging-repo/thirdparty/apigee-prom-prometheus/master:v2.9.2
    Image ID:      docker-pullable://us.gcr.io/apigee-saas-staging-repo/thirdparty/apigee-prom-prometheus/master@sha256:05350e0d1a577674442046961abf56b3e883dcd82346962f9e73f00667958f6b
    Port:          19090/TCP
    Host Port:     0/TCP
    Args:
      --config.file=/etc/prometheus/agg/prometheus.yml
      --storage.tsdb.path=/prometheus/agg/
      --storage.tsdb.retention=48h
      --web.enable-admin-api
      --web.listen-address=127.0.0.1:19090
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    137
      Started:      Wed, 21 Oct 2020 16:53:42 +0000
      Finished:     Wed, 21 Oct 2020 16:54:28 +0000
    Ready:          False
    Restart Count:  1446
    Limits:
      cpu:     500m
      memory:  512Mi
    Requests:
      cpu:     100m
      memory:  256Mi