{# Server tab "kubernetes": this node's role, conditions and its own pods. Context: s, smp, k8s_pods, k8s_manifest, fmt_bytes, fmt_uptime #} {% set k = smp.get('kubernetes') or {} %} {% if not k.get('detected') %}
The agent on this server did not detect Kubernetes (no service-account token at /var/run/secrets/kubernetes.io/serviceaccount). To monitor a cluster, run the agent as a DaemonSet so every node reports its pods and conditions:
kubectl apply -f "{{ k8s_manifest }}"
Nodes appear as servers named <cluster>/<node> and on the Kubernetes page. Needs agent 1.2+.
| Namespace | Pod | Phase | Ready | Restarts | Containers | CPU | Memory | Age |
|---|---|---|---|---|---|---|---|---|
| {{ p.namespace }} | {{ p.name }}{% if p.owner %} {{ p.owner }} {% endif %} |
{{ p.phase or '?' }}{% for pr in p.problems %} {{ pr }} {% endfor %} |
{{ p.ready }}/{{ p.total }} | {{ p.restarts or 0 }} | {% for c in p.containers or [] %} {{ c.name }} {{ c.image or '' }}{% if c.reason %} {{ c.reason }}{% endif %} {% endfor %} |
{% if p.cpu_millicores is not none %}{{ p.cpu_millicores|int }}m{% else %}—{% endif %} | {% if p.mem_bytes is not none %}{{ fmt_bytes(p.mem_bytes) }}{% else %}—{% endif %} | {{ fmt_uptime(p.age_s) }} |
| No pods scheduled on this node. | ||||||||
Whole cluster: /app/kubernetes. Incidents open automatically for CrashLoopBackOff / OOMKilled / Failed pods and NotReady, MemoryPressure, DiskPressure nodes.
{% endif %}