En este documento, encontrarás ayuda para solucionar problemas de observabilidad en Google Distributed Cloud. Si tienes alguno de estos problemas, revisa las correcciones sugeridas y las soluciones alternativas.
Si necesitas más ayuda, comunícate con la Atención al cliente de Google.
Los Registros de auditoría de Cloud no se recopilan
Los registros de auditoría de Cloud están habilitados de forma predeterminada, a menos que haya una marcadisableCloudAuditLogging
establecida en la sección clusterOperations
de la configuración del clúster.
Si los registros de auditoría de Cloud están habilitados, los permisos son la razón más común por la que no se recopilan registros. En esta situación, los mensajes de error de permiso denegado se muestran en el contenedor del proxy de registros de auditoría de Cloud.
El contenedor del proxy de Registros de auditoría de Cloud se ejecuta como un DaemonSet en todos los clústeres de Google Distributed Cloud.Si ves errores de permisos, sigue los pasos para solucionar problemas de permisos.
No se recopilan kube-state-metrics
métricas
kube-state-metrics
(KSM) se ejecuta como una Deployment de réplica única en el clúster y genera métricas sobre casi todos los recursos del clúster. Cuando KSM y gke-metrics-agent
se ejecutan en el mismo nodo, existe un mayor riesgo de interrupción entre los agentes de métricas en todos los nodos.
Las métricas de KSM tienen nombres que siguen el patrón de kube_<ResourceKind>
, como kube_pod_container_info
. Las métricas que comienzan con kube_onpremusercluster_
provienen del controlador del clúster local, no de KSM.
Si faltan métricas de KSM, revisa los siguientes pasos para solucionar problemas:
- En Cloud Monitoring, verifica la CPU, la memoria y el recuento de reinicios de KSM con las métricas de resumen de la API, como
kubernetes.io/anthos/container/...
. Esta es una canalización independiente con KSM. Confirma que el Pod de KSM no esté limitado por la cantidad de recursos insuficientes.- Si estas métricas de resumen de la API no están disponibles para KSM, es probable que
gke-metrics-agent
en el mismo nodo también tenga el mismo problema.
- Si estas métricas de resumen de la API no están disponibles para KSM, es probable que
- En el clúster, verifica el estado y los registros del Pod de KSM y el Pod
gke-metrics-agent
en el mismo nodo con KSM.
kube-state-metrics
falla en bucle
Síntoma
No hay métricas de kube-state-metrics
(KSM) disponibles en Cloud Monitoring.
Causa
Es más probable que esta situación ocurra en clústeres grandes o con grandes cantidades de recursos. KSM se ejecuta como una Deployment de réplica única y enumera casi todos los recursos del clúster, como Pods, Deployments, DaemonSets, ConfigMaps, Secrets y PersistentVolumes. Las métricas se generan en cada uno de estos objetos de recursos. Si alguno de los recursos tiene muchos objetos, como un clúster con más de 10,000 Pods, es posible que KSM se quede sin memoria.
Versiones afectadas
Este problema se podría experimentar en cualquier versión de Google Distributed Cloud.
El límite predeterminado de CPU y memoria se aumentó en las últimas versiones de Google Distributed Cloud, por lo que estos problemas de recursos deberían ser menos comunes.
Solución y solución alternativa
Para comprobar si el problema se debe a la falta de memoria, sigue estos pasos:
- Usa
kubectl describe pod
okubectl get pod -o yaml
y verifica el mensaje de estado de error. - Verifica la métrica de consumo y uso de memoria de KSM y confirma si alcanza el límite antes de reiniciarse.
Si confirmas que los problemas de memoria insuficiente son el problema, usa una de las siguientes soluciones:
Aumenta la solicitud de memoria y el límite de KSM.
Para ajustar la CPU y la memoria de KSM, usa resourceOverride de Stackdriver para
kube-state-metrics
.Reduce la cantidad de métricas de KSM.
En Google Distributed Cloud 1.13, KSM solo expone una cantidad más pequeña de métricas denominadas métricas principales de forma predeterminada. Este comportamiento significa que el uso de recursos es menor que las versiones anteriores, pero se puede seguir el mismo procedimiento para reducir aún más la cantidad de métricas de KSM.
Para las versiones de Google Distributed Cloud anteriores a la 1.13, KSM usa las marcas predeterminadas. Esta configuración expone una gran cantidad de métricas.
gke-metrics-agent
falla en bucle
Si gke-metrics-agent
solo experimenta problemas de memoria insuficiente en el nodo en el que existe kube-state-metrics
, la causa es una gran cantidad de métricas de kube-state-metrics
. Para mitigar este problema, reduce la escala verticalmente de stackdriver-operator
y modifica KSM para exponer un pequeño conjunto de métricas necesarias, como se detalla en la sección anterior.
Recuerda escalar verticalmente stackdriver-operator
después de que el clúster se actualice a Google Distributed Cloud 1.13, en el que KSM expone, de forma predeterminada, una cantidad menor de métricas principales.
gke-metric-agent
. Puedes ajustar la CPU y la memoria de todos los Pods gke-metrics-agent
si agregas el campo resourceAttrOverride
al recurso personalizado de Stackdriver.
stackdriver-metadata-agent
falla en bucle
Síntoma
No hay etiquetas de metadatos del sistema disponibles cuando se filtran métricas en Cloud Monitoring.
Causa
El caso más común de bucles de falla de stackdriver-metadata-agent
se debe a eventos de falta de memoria. Este evento es similar a kube-state-metrics
. Aunque stackdriver-metadata-agent
no enumera todos los recursos, aún enumera todos los objetos para los tipos de recursos relevantes, como Pods, Deployments y NetworkPolicy. El agente se ejecuta como una Deployment de réplica única, lo que aumenta el riesgo de eventos de memoria insuficiente si la cantidad de objetos es demasiado grande.
Versión afectada
Este problema se podría experimentar en cualquier versión de Google Distributed Cloud.
El límite predeterminado de CPU y memoria se aumentó en las últimas versiones de Google Distributed Cloud, por lo que estos problemas de recursos deberían ser menos comunes.
Solución y solución alternativa
Para comprobar si el problema se debe a la falta de memoria, sigue estos pasos:
- Usa
kubectl describe pod
okubectl get pod -o yaml
y verifica el mensaje de estado de error. - Verifica la métrica de consumo y uso de memoria de
stackdriver-metadata-agent
y confirma si alcanza el límite antes de reiniciarse.
resourceAttrOverride
del recurso personalizado de Stackdriver.
metrics-server
falla en bucle
Síntoma
Horizontal Pod Autoscaler y kubectl top
no funcionan en tu clúster.
Causa y versiones afectadas
Este problema no es muy común, pero se debe a errores de falta de memoria en clústeres grandes o en clústeres con una alta densidad de Pods.
Este problema se podría experimentar en cualquier versión de Google Distributed Cloud.
Solución y solución alternativa
Aumenta los límites de recursos del servidor de métricas.
En Google Distributed Cloud versión 1.13 y posteriores, el espacio de nombres de metrics-server
y su configuración se movieron de kube-system
a gke-managed-metrics-server
.
metrics-server-operator
y cambia de forma manual el Pod de metrics-server
.
¿Qué sigue?
Si necesitas más ayuda, comunícate con la Atención al cliente de Google.