Kubernetes·7 min read·

Kubernetes Observability Essentials: Logs, Metrics, and Simple Dashboards

Track what your cluster is doing with kubectl logs, metrics-server, and lightweight dashboards on k3s — no heavy observability stack needed.

NB

Netbay Engineering

Netbay Engineering

On this page

A black-box cluster is a dangerous cluster. On a single node you do not need a sprawling Prometheus-plus-Grafana-Loki deployment to stay oriented. The essentials are three layers: logs for what happened, metrics for how much is happening, and a simple dashboard to glance at. This post walks through each with the tools k3s gives you by default plus one small install.

Layer 1: logs

kubectl logs shows a pod or container's stdout/stderr. For a Deployment, add --tail and an app label to inspect the newest lines. When a pod is unhealthy, describe plus logs usually tells you why.

bash
kubectl logs deploy/api --tail=100
kubectl logs -l app=api --tail=50 -f
kubectl logs deploy/db --previous
kubectl describe pod api-abc123

The --previous flag reads logs from the prior incarnation of a restarted container — essential for crash-loop debugging.

Layer 2: metrics with metrics-server

The metrics server feeds kubectl top and powers the HorizontalPodAutoscaler. k3s can enable it via the HelmChartConfig mechanism. Install it with:

bash
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl top nodes
kubectl top pods -A

Once running, top shows live CPU and memory per node and pod.

Layer 3: a simple dashboard

For higher-level views without heavy tooling, the k9s terminal UI is a great fit for a single operator. It is a TUI, not a web dashboard, so it needs no extra storage or services.

bash
sudo snap install k9s
k9s -n production
k9s pods

k9s tabs let you move between pods, deployments, services, and logs with keyboard shortcuts.

How the layers fit

logs kubectl logs metrics kubectl top dashboard k9s TUI single-node k3s cluster one box, one place to watch

A debugging sequence

A reliable habit: check metrics first to see if the node is saturated, then logs to find the error, then describe for events. Concretely:

bash
kubectl top nodes
kubectl top pods
kubectl logs -l app=api --tail=100
kubectl get events --sort-by=.lastTimestamp

Takeaway

Start with logs, add metrics-server for top, and use a TUI like k9s for navigation — that is enough to run a small cluster confidently without heavy tooling. Get the three commands into daily muscle memory on your k3s box at Netbay, and problems will announce themselves early instead of arriving as surprises — netbayhosts.in.

Keep reading

Follow along on a real VPS

Deploy Linux in under 60 seconds

These guides are written against Ubuntu, Debian, and RHEL-family images — the same ones on NetBay.

Deploy an instance