This runbook collects the day-0 and day-1 commands you are most likely to need while operating llm-observability-stack on a local k3s machine.
Check current state:
kubectl get all -n llm-observability
kubectl get svc -n llm-observability
helm list -n llm-observability
git status --short./hack/build-local-image.sh ollama-gateway 0.2.0 . ollama-gateway/Dockerfile
./hack/import-local-image-to-k3s.sh ollama-gateway 0.2.0
kubectl rollout restart deploy/ollama-gateway -n llm-observability
kubectl rollout status deploy/ollama-gateway -n llm-observability./hack/build-local-image.sh edge-toolbox 0.2.0 . edge-toolbox/Dockerfile
./hack/import-local-image-to-k3s.sh edge-toolbox 0.2.0
kubectl rollout restart deploy/edge-toolbox -n llm-observability
kubectl rollout status deploy/edge-toolbox -n llm-observabilityhelm upgrade --install llm-observability-stack . \
-n llm-observability --create-namespace \
-f values.enterprise-pilot-k3s.yaml \
--set kube-prometheus-stack.crds.enabled=falseUse a private values.local-k3s.yaml only when your host paths, secrets, or service exposure differ. Keep ollama.persistentVolume.size aligned with any existing ollama PVC; k3s local-path storage does not resize that claim in place.
helm get values llm-observability-stack -n llm-observability -ahelm history llm-observability-stack -n llm-observability
helm rollback llm-observability-stack <REVISION> -n llm-observabilityhelm uninstall llm-observability-stack -n llm-observabilitykubectl get pods -n llm-observability -o wide
kubectl get svc -n llm-observability
kubectl get pvc -n llm-observability
kubectl top pods -n llm-observabilitykubectl logs -n llm-observability deploy/ollama-gateway --tail=100
kubectl logs -n llm-observability deploy/ollama --tail=100
kubectl logs -n llm-observability statefulset/open-webui --tail=100
kubectl logs -n llm-observability deploy/edge-toolbox --tail=100kubectl port-forward -n llm-observability svc/ollama 11434:11434
kubectl port-forward -n llm-observability svc/ollama-gateway 8000:8000Use these for:
- direct Ollama API tests
- Ollama gateway notebook cells
- OpenTelemetry traced proxy requests from the host
Launch:
PYTHON_BIN="${PYTHON_BIN:-python3.11}"
cd jupyter-notebooks
"${PYTHON_BIN}" -m jupyter labUseful pairings:
01before any major change07when validatingedge-toolbox09when validating cluster networking
If notebook cells fail:
- confirm the required port-forwards
- confirm the release is installed
- confirm the toolbox pod is running
- confirm OpenTelemetry environment variables for tracing notebooks
Run a diagnostic command. The hardened distroless image intentionally has no interactive shell:
kubectl exec -n llm-observability deploy/edge-toolbox -- edge-toolbox dns ollama ollama-gatewayRun helper scripts:
kubectl exec -it -n llm-observability deploy/edge-toolbox -- edge-toolbox dns ollama ollama-gateway open-webui open-webui-redis
kubectl exec -it -n llm-observability deploy/edge-toolbox -- edge-toolbox ollama-smoke
kubectl exec -it -n llm-observability deploy/edge-toolbox -- edge-toolbox redis-pingwatch -n 0.5 nvidia-smi
kubectl get pods -n nvidia-device-plugin
kubectl get nodes -o json | jq '.items[0].status.allocatable'If scheduling is failing, inspect the node plugin runtime behavior and confirm the resource name requested in values.enterprise-pilot-k3s.yaml or your private local override.
- likely missing
kubectl port-forwardforollamaand/orollama-gateway
- inspect logs
- confirm the local image tag imported into k3s matches the chart values
- confirm OpenTelemetry env inputs are valid when tracing is enabled
- verify GGUF host path mounts
- verify Modelfile render values
- verify the model exists through
/api/tags
- rebuild/import the local
edge-toolboximage - restart the toolbox deployment
Do not commit:
values.local-k3s.yaml- notebook checkpoint directories
- generated notebook assets
- rendered manifests
- secret material
- large model binaries
Before publishing:
git status --short
helm lint .
go test ./...