Kubernetes Operations Reference
Install, start/stop, access, and image management for the K8s deployment bundle. For the quick install path, see Kubernetes Installation.
Bundle Layout
After extracting the one-line install package:
databuff-ai-apm-k8s-<version>/
├── install.sh # Fresh install (after uninstall)
├── start.sh # Start in order (does not remove resources)
├── stop.sh # Scale to 0; keeps Service / ConfigMap
├── download-images.sh
├── download-apm-images.sh
├── manifests/ # ZooKeeper, Doris, ingest, web
├── sql/
└── scripts/lib.shDefault namespace: databuff. install.sh / start.sh use plain kubectl (no Helm): ZooKeeper + Doris → wait and run databuff.sql (skipped if tables exist) → ingest + web.
Start and Stop
cd databuff-ai-apm-k8s-<version>
./install.sh # Fresh install (cleans same-named resources first)
./start.sh # Start only
./stop.sh # Scale ingest / web / doris / zookeeper to 0Access
| Service | In-cluster port | NodePort (node access) |
|---|---|---|
| Web | 27403 | 32703 |
| Ingest (OTLP gRPC) | 4317 | 30417 |
| Ingest (OTLP HTTP) | 4318 | 30418 |
Example: Web UI at http://<node-ip>:32703; external OTLP HTTP at http://<node-ip>:30418 (gRPC at 30417). In-cluster Service ai-apm-ingest: http://ai-apm-ingest:4318.
Default login (same as Docker install):
- Username:
admin - Password:
Databuff@123
Offline Images
When nodes cannot pull from a registry (amd64/arm64 auto-detected):
curl -fsSL https://databuff.ai/databuff/ai-apm-k8s-download-images.sh | bash
# or from the bundle
./download-images.shk3s / containerd:
export IMAGE_LOAD_CMD=ctr
curl -fsSL https://databuff.ai/databuff/ai-apm-k8s-download-images.sh | bashUpgrade ingest / web images only (not Doris / ZooKeeper):
curl -fsSL https://databuff.ai/databuff/ai-apm-k8s-download-apm-images.sh | bash
# or
./download-apm-images.shIngest Scaling (Optional)
A single replica runs in standalone mode. With multiple replicas and cluster coordination enabled, ingest uses ZooKeeper for membership:
kubectl scale deploy/ai-apm-ingest -n databuff --replicas=4
kubectl rollout status deploy/ai-apm-ingest -n databuffHealth Checks and Logs
| Service | Probe |
|---|---|
| Web | kubectl exec -n databuff deploy/ai-apm-web -- wget -qO- http://127.0.0.1:27403/health |
| Ingest | kubectl exec -n databuff deploy/ai-apm-ingest -- wget -qO- http://127.0.0.1:4318/health |
kubectl logs -n databuff deploy/ai-apm-ingest -f
kubectl logs -n databuff deploy/ai-apm-web -fCommon Issues
| Symptom | Action |
|---|---|
| Empty service list | Point Agent to http://ai-apm-ingest:4318 (NodePort outside cluster); see OTLP Ingestion |
| No alerts after creating rules | Ensure services have metrics; evaluation runs every minute; verify rule scope |
| Pod fails to start | kubectl describe pod -n databuff <pod> for Events; check node memory |
Notes
- Doris uses
emptyDirin demo manifests — re-run init SQL after Pod recreation. - Default resource limits match the Docker stack; see
manifests/doris.yaml,ingest.yaml,web.yaml.