ClickHouseCluster e
KeeperCluster que gerencia. Esses eventos mostram o que o operador fez
durante a reconciliação — onde mudanças em recursos falharam, quando um cluster ficou
pronto, por que o escalonamento foi bloqueado — e revelam falhas que nunca chegam a aparecer em logs que
os usuários normalmente consultam. Eles complementam as métricas
ao anexar um histórico legível por humanos diretamente ao recurso personalizado.
O clickhouse-controller relata eventos em objetos ClickHouseCluster, e o
keeper-controller os relata em objetos KeeperCluster. Os eventos de falha no ciclo de vida
do recurso também fazem referência ao objeto associado a eles (um
StatefulSet, Service, ConfigMap, Secret, PodDisruptionBudget,
PersistentVolumeClaim ou version-probe Job); os demais eventos fazem referência apenas ao
próprio cluster.
O servidor da API do Kubernetes expira eventos após um TTL — uma hora por padrão
(
--event-ttl). Portanto, os eventos são um sinal de curta duração da atividade recente,
não uma trilha de auditoria persistente.Visualizando eventos
kubectl describe no recurso personalizado, que lista os
eventos mais recentes na parte inferior:
events e filtre pelo objeto envolvido ou pelo tipo:
ClickHouseCluster (clickhouse-controller) de um evento KeeperCluster
(keeper-controller).
Referência dos motivos de evento
Normal indicam o progresso esperado; eventos Warning
indicam uma falha ou um estado que exige ação do usuário.
Ciclo de vida do recurso
ClickHouseCluster e KeeperCluster quando o operador não consegue
aplicar um recurso gerenciado durante a reconciliação.
Prontidão do cluster
Escalonamento
KeeperCluster quando o operador altera o número de réplicas.
HorizontalScaleBlocked é o evento a observar quando uma solicitação de escalonamento do Keeper parece
não surtir efeito: o operador retém deliberadamente a alteração e mantém o
quórum existente em vez de correr o risco de uma divisão. A mensagem do evento informa a condição que
bloqueou a alteração.Secret externo
ClickHouseCluster quando o cluster referencia um Secret externo que
o operador não consegue usar. Consulte o recurso Secret externo no
guia de configuração.
Verificações de versão
ClickHouseCluster e KeeperCluster.
VersionProbeFailed é específico do Job version-probe do ClickHouse.
Avisos do servidor ClickHouse
Esse último Reason é diferente: ele não descreve as ações do próprio operador. Em
cada réplica pronta, o operador consulta periodicamente a table
system.warnings do servidor e
republica cada linha como um evento Warning no cluster, com o prefixo da
réplica de onde veio. Isso transforma os próprios avisos de configuração e de runtime
do ClickHouse — configurações obsoletas, limites baixos, opções inseguras — em eventos que você pode ver
com kubectl sem abrir uma sessão clickhouse-client em cada réplica.
Eventos, métricas e condições
- Eventos (este guia) — recentes, legíveis por humanos, vinculados ao objeto. Melhores
para “o que acabou de acontecer com este cluster” e para troubleshooting interativo com
kubectl describe. Eles expiram. status.conditionsno recurso personalizado — a verdade atual e persistente (pronto, Secret externo válido, escalonamento permitido, versão sincronizada). Melhor para scripts e verificações de integridade do GitOps. Leia comkubectl get clickhousecluster <name> -o jsonpath='{.status.conditions}'.- Métricas — duráveis e numéricas. Melhores para dashboards e para alertar sobre uma taxa sustentada de erros de reconciliação.
Warning e uma condição False frequentemente descrevem o mesmo problema por dois
ângulos: o evento registra o momento e a mensagem, e a condição reflete o
estado até que seja normalizado.
Solução de problemas com eventos
FailedCreate/FailedUpdatese repetindo — o operador não consegue aplicar um recurso. A mensagem do evento traz o erro da API (rejeição no admission, quota,specinválida). A reconciliação faz novas tentativas, então uma causa transitória se resolve sozinha; uma causa persistente exige corrigir aspecou o cluster.ClusterNotReadysem umClusterReadycorrespondente — o cluster não está se recuperando. A mensagem do evento informa quais shards não estão prontos ou qual é o problema de quórum; verifique os pods por trás deles.HorizontalScaleBlocked— uma escala pretendida está sendo bloqueada por segurança. Leia a mensagem para ver a restrição exata antes de forçar qualquer coisa.ExternalSecretNotFound/ExternalSecretInvalid— corrija o nome do Secret ou suas chaves; a condiçãoExternalSecretValidcorrespondente muda paraTrueassim que o operador conseguir usá-lo.ClickHouseWarning— o problema está no ClickHouse, não no operador. Trate a mensagem como trataria uma linha desystem.warnings.
- Monitoramento do operador — métricas e probes de integridade, o equivalente persistente aos eventos.
- Escalonamento — o que
HorizontalScaleBlockedprotege e como os limites de quórum do Keeper restringem o escalonamento. - Configuração — o recurso Secret externo por trás dos eventos external-secret.