myapp no namespace production, em três montagens:
Opção 1: monitoramento local
1
Confira o acesso ao cluster
~/.kube/config com o contexto atual (ou --kubeconfig); ele não lê KUBECONFIG.2
Inicie o watcher
3
Pergunte
/watch status imprime o estado numa linha.Ajustes
Vários workloads, outros tipos, métricas Prometheus
maxContextChars. A coleta Prometheus lê os IPs dos pods por HTTP puro, então de um notebook só funciona se a sua rede roteia para os IPs dos pods; do contrário os outros dados continuam chegando e a seção de métricas simplesmente não aparece.
One-shot para handlers de alerta
Opção 2: servidor do time com watcher (Helm)
1
Instale o servidor com um watcher
server.tokené obrigatório: num pod o servidor escuta em todas as interfaces e se recusa a subir sem credencial.- O log do servidor chega ao
kubectl logssozinho: num pod o servidor também o escreve no stderr, em linhas JSON. A cópia em arquivo no pod roda a cada 20 MB com 3 backups (logging.*), o que cabe no volume de dados de 200Mi do pod. - Um
watcher.namespacevazio observa odefault. Um namespace diferente do release (productionaqui, fora demonitoring) faz o chart criar uma ClusterRole automaticamente. Para vários workloads, ou um StatefulSet, DaemonSet, Job ou CronJob (kind), usewatcher.targetsnum arquivo de valores (veja valores do watcher no Helm).
2
Confira
3
Conecte
CHATCLI_ALLOW_INSECURE=true é necessário porque este servidor é texto puro; para qualquer coisa além de um port-forward ligue o TLS e conecte com --tls --ca-cert.security.jwtSecretRef), assim cada chamador tem identidade e bucket de rate limit próprios; veja Autenticação do servidor.
Fluxo de incidente
watcher.window (padrão 2 horas). O /watch status nesta sessão consulta o watcher do servidor (K8s Watcher (remote): …).
Para scripts contra o servidor:
Opção 3: AIOps autônomo (operator)
O operator provisiona o servidor a partir de umaInstance, lê os alertas do watcher via StreamAlerts e conduz Anomaly → Issue → AIInsight → RemediationPlan. Ele disca o servidor por TLS com uma credencial, então a Instance precisa das duas coisas.
1
Instale o operator
2
Crie os Secrets
Siga Sua primeira Instance para os três Secrets no namespace
chatcli: chatcli-api-keys (chave do provedor), chatcli-server-token (chave token) e chatcli-tls (tls.crt, tls.key, ca.crt, válido para chatcli.chatcli.svc.cluster.local).3
Crie a Instance com watcher
server.token (ou outra credencial) o operator não cria o Deployment (AuthenticationConfigured=False); sem TLS ele não alcança o servidor (ServerReachable=False). namespace é obrigatório em todo alvo. O pipeline usa a primeira Instance pronta do cluster.4
Acompanhe o pipeline
HighRestartCount (e OOMKilled quando essa é a causa); o operator registra uma Anomaly, correlaciona numa Issue, pede uma análise ao servidor (AnalyzeIssue) e remedia a partir de um Runbook compatível, de ações sugeridas pela IA ou de um loop agêntico observar-decidir-agir (AgenticStep, até spec.aiops.agenticMaxSteps, padrão 10). O fluxo completo, as aprovações e os limites de segurança estão em Plataforma AIOps.5
(Opcional) Adicione um Runbook
Solução de problemas
Checklist
- Watch e servidor
- Operator de AIOps
- Acesso via
kubectle RBAC para pods, pods/log, events, workloads - Local (
chatcli watch) ou compartilhado (chatcli server/ Helmwatcher.*) - Alvo único (
--deployment) outargets.yaml(--config/--watch-config) -
metricsPortemetricsFilteropcionais para a coleta Prometheus - Intervalo e janela adequados ao cenário;
maxContextCharspara muitos alvos - Servidor: credencial definida, TLS antes de expor
- Teste: “O deployment está saudável?”