← Voltar ao Holistic

Bearer token do Kubernetes

O Holistic usa um ServiceAccount de somente leitura para descobrir e monitorar nodes, pods, namespaces, deployments, jobs, cronjobs e events. Não use credenciais de administrador do cluster.

1. Namespace e ServiceAccount

kubectl create namespace holistic-monitor
kubectl create serviceaccount holistic-monitor -n holistic-monitor

2. ClusterRole mínimo (inclui nodes, jobs e cronjobs)

O ClusterRole view padrão não inclui nodes — use o abaixo. Se você já aplicou uma versão antiga, reaplique este manifesto para incluir batch (Jobs/CronJobs) e events.

kubectl apply -f - <<'EOF'
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: holistic-monitor-read
rules:
- apiGroups: [""]
  resources: ["nodes", "pods", "namespaces", "events"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
  resources: ["deployments"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["batch"]
  resources: ["jobs", "cronjobs"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: holistic-monitor-read
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: holistic-monitor-read
subjects:
- kind: ServiceAccount
  name: holistic-monitor
  namespace: holistic-monitor
EOF

3. Token de longa duração

Em Kubernetes ≥ 1.24, crie um Secret do tipo ServiceAccount token:

kubectl apply -f - <<'EOF'
apiVersion: v1
kind: Secret
metadata:
  name: holistic-monitor-token
  namespace: holistic-monitor
  annotations:
    kubernetes.io/service-account.name: holistic-monitor
type: kubernetes.io/service-account-token
EOF

kubectl get secret holistic-monitor-token -n holistic-monitor \
  -o jsonpath='{.data.token}' | base64 -d; echo

4. URL do API server

kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'; echo

Onde colar no Holistic

Boas práticas

Troubleshooting — Descobrir

O botão Descobrir enfileira uma tarefa allowlisted no agente runner do cluster (host com agente associado). O servidor Holistic não precisa alcançar o API server (:6443). Se falhar, o Holistic classifica a causa e aponta para a seção abaixo.

Host e agente runner

Sintomas: mensagens pedindo para associar um host, agente offline, timeout aguardando o agente, ou plugin binary not found: k8s.

API inacessível (rede / timeout)

Sintomas: connection refused, i/o timeout, no such host, dial tcp, network is unreachable, ou página HTML Bad gateway / Error code 502 da Cloudflare no Descobrir.

Falha de TLS / certificado

Sintomas: x509, certificate, unknown authority, erros de TLS.

Token inválido ou expirado (401)

Sintomas: 401, Unauthorized.

Sem permissão RBAC (403)

Sintomas: 403, Forbidden — em list nodes, list jobs, list cronjobs, etc. O ClusterRole view padrão não inclui nodes; versões antigas do manifesto Holistic também omitiam batch.