ClickHouseCluster y
KeeperCluster que administra. Estos eventos muestran lo que hizo el operador
durante la reconciliación — dónde fallaron los cambios en los recursos, cuándo un clúster pasó a estar
listo, por qué se bloqueó el escalado — y sacan a la luz fallos que nunca llegan a un log que
un usuario leería normalmente. Complementan las métricas
al adjuntar un historial legible para humanos directamente al recurso personalizado.
clickhouse-controller informa eventos en los objetos ClickHouseCluster y
keeper-controller los informa en los objetos KeeperCluster. Los eventos de fallo del ciclo de vida del recurso también hacen referencia al objeto dependiente correspondiente (un
StatefulSet, Service, ConfigMap, Secret, PodDisruptionBudget,
PersistentVolumeClaim o Job de comprobación de versión); otros eventos hacen referencia solo al
clúster en sí.
El Kubernetes API server hace que los eventos caduquen tras un TTL — una hora de forma predeterminada
(
--event-ttl). Por lo tanto, los eventos son una señal de corta duración sobre la actividad reciente,
no un registro de auditoría duradero.Ver eventos
kubectl describe en el recurso personalizado, que muestra los
eventos más recientes al final:
events y filtra por el objeto implicado o por el tipo:
ClickHouseCluster (clickhouse-controller) de un evento de KeeperCluster
(keeper-controller).
Referencia de razones de eventos
Normal
indican el progreso esperado; los eventos Warning indican un fallo o un estado sobre el que
el usuario debe actuar.
Ciclo de vida del recurso
ClickHouseCluster como en KeeperCluster cuando el operador no puede
aplicar un recurso gestionado por él durante la reconciliación.
Disponibilidad del clúster
Escalado
KeeperCluster cuando el operador cambia la cantidad de réplicas.
HorizontalScaleBlocked es el evento que se debe vigilar cuando una solicitud de escalado de Keeper parece
no hacer nada: el operador retiene deliberadamente el cambio y mantiene el
cuórum existente en lugar de arriesgarse a una partición. El mensaje del evento indica la restricción que
bloqueó el cambio.External Secret
ClickHouseCluster cuando el clúster hace referencia a un Secret externo que
el operador no puede usar. Consulta la función External Secret en la
guía de configuración.
Comprobaciones de versión
ClickHouseCluster y KeeperCluster.
VersionProbeFailed es específico del Job de sondeo de versión de ClickHouse, version-probe.
Advertencias del servidor ClickHouse
Esta última razón es distinta: no describe las acciones del propio operador. En
cada réplica lista, el operador consulta periódicamente la
tabla
system.warnings del servidor y
republica cada fila como un evento Warning en el clúster, con el prefijo de la
réplica de la que procede. Esto convierte las propias advertencias de configuración y de ejecución de ClickHouse
—ajustes obsoletos, límites bajos, opciones inseguras— en eventos que puedes ver
con kubectl sin abrir una sesión de clickhouse-client en cada réplica.
Eventos, métricas y condiciones
- Eventos (esta guía) — recientes, legibles para humanos, asociados al objeto. Ideales
para “qué acaba de pasarle a este clúster” y para la resolución interactiva de problemas con
kubectl describe. Caducan. status.conditionsen el recurso personalizado — la verdad actual y persistente (Ready, External Secret válido, escalado permitido, versión sincronizada). Lo mejor para scripts y compuertas de estado de GitOps. Léalas conkubectl get clickhousecluster <name> -o jsonpath='{.status.conditions}'.- Métricas — duraderas y numéricas. Ideales para dashboards y para generar alertas ante una tasa sostenida de errores de reconciliación.
Warning y una condición False a menudo describen el mismo problema desde dos
ángulos: el evento captura el momento y el mensaje; la condición refleja el
estado hasta que se despeja.
Solución de problemas con eventos
FailedCreate/FailedUpdaterepetidos — el operador no puede aplicar un recurso. El mensaje del evento incluye el error de la API (rechazo en admisión, cuota, spec no válida). La reconciliación vuelve a intentarlo, así que una causa transitoria se resuelve sola; una persistente requiere corregir la spec o el clúster.ClusterNotReadysin unClusterReadycorrespondiente — el clúster no se está recuperando. El mensaje del evento indica qué segmentos no están listos o cuál es el problema de cuórum; compruebe los pods que hay detrás de ellos.HorizontalScaleBlocked— un escalado previsto se está reteniendo por seguridad. Lea el mensaje para conocer la restricción exacta antes de forzar nada.ExternalSecretNotFound/ExternalSecretInvalid— corrija el nombre del Secret o sus claves; la condiciónExternalSecretValidcorrespondiente cambia aTrueuna vez que el operador puede usarlo.ClickHouseWarning— el problema está dentro de ClickHouse, no en el operador. Trate el mensaje como trataría una fila desystem.warnings.
- Monitoreo del operador — métricas y sondas de estado, la contraparte persistente de los eventos.
- Escalado — qué protege
HorizontalScaleBlockedy cómo el quórum de Keeper limita el escalado. - Configuración — la funcionalidad External Secret detrás de los eventos de external-secret.