Table of Contents

k9s Shortcuts

Quick reference for navigating and operating a Kubernetes cluster with k9s. Everything is driven from command mode (​:​) to switch resource views; single letters then act on the highlighted row.

Launch

k9s                          # default context, all namespaces
k9s -n my-namespace          # start in a namespace
k9s --context staging        # start in a specific context
k9s --readonly               # disable all mutating ops (prod/demos)
k9s -c pods                  # jump straight to a resource view
k9s --kubeconfig ~/.kube/x   # explicit kubeconfig

Command mode — resource views

Open with ​:​ then type a name or alias.

View Aliases
Pods po
Deployments deploy dp
Services svc
Nodes no
Namespaces ns
ConfigMaps cm
Secrets sec
Ingress ing
PVCs pvc pv
StatefulSets sts
DaemonSets ds
Events ev
CRDs crd

​:ctx switches context, ​:ns switches namespace, ​:q (or repeated Esc) quits. For CRDs use the kind, or the fully-qualified kind.group form if the short alias is ambiguous.

Key Action
↑/↓ or j/k Move between rows
Enter Drill into the resource (namespace → pods, pod → containers)
Esc Go back / clear filter / close
​: Command mode (switch resource view)
/ Filter rows in the current view
? Help — all keybindings for the current view
Ctrl-a List all available resource aliases
0–9 Quick-switch namespace by index (0 = all)
Tab / Shift-Tab Move between panes

Acting on a resource

Highlight a row, then:

Key Action
d Describe
l Logs (current container)
Shift-l Logs (previous / crashed container)
y View YAML
e Edit (opens $EDITOR, applies on save)
s Shell into the pod (exec)
Ctrl-d Delete (with confirm)
Ctrl-k Kill (delete, no grace period)
Shift-f Port-forward
Enter Drill in (pod → containers, etc.)
Space Mark / select row (for bulk delete)
Ctrl-Space Mark a range

Logs

From a pod or container, l opens the log view:

Key Action
0 Tail from the beginning
1–5 Last 1 / 5 / 10 / 15 / 30 min (configurable)
f Toggle full-screen
w Toggle line wrap
s Toggle autoscroll
t Toggle timestamps
c Copy visible logs to clipboard
/ Filter log lines (regex)
Esc Back to the resource view

For multi-container pods, Enter into the pod first, then l on the specific container.

Contexts & namespaces

:ctx                  # interactive context switcher
:ctx staging          # jump directly
:ns                   # namespace switcher

Ctrl-a lists every resource alias the current cluster exposes (including CRDs) — fastest way to explore an unfamiliar cluster.

Networking

There is no single “network” view — networking spans several resource types plus the port-forward machinery.

Networking resource views

Type Aliases Shows
Services svc service TYPE, CLUSTER-IP, EXTERNAL-IP, PORTS, SELECTOR
Endpoints ep endpoints Backing pod IPs:ports per service
EndpointSlices eps endpointslices Newer endpoint representation
Ingress ing ingress Hosts, paths, backend services, TLS
IngressClasses ic ingressclasses Available ingress controllers
NetworkPolicies np netpol Ingress/egress rules, pod selectors
Pods po Already shows IP and NODE columns
Nodes no Node internal / external IPs

If your CNI exposes CRDs they're reachable too — e.g. ​:ippools, ​:ciliumendpoints, ​:ciliumnetworkpolicies. Use Ctrl-a to list what the cluster actually has.

Networking keys

Key On Action
d svc / ing / netpol Describe — selectors, ports, rules, events
Enter service Drill into the endpoints / pods it routes to
y any Raw YAML (full spec)
Shift-f pod / service Start a port-forward
s pod Shell in to run ip a, ss -tlnp, nslookup, curl
/ any list Filter; /-l app=foo filters by label selector

Port-forward & benchmark

  1. Highlight a pod or service → Shift-f → pick container port, local port, bind address → confirm.
  2. ​:pf shows all active forwards. Ctrl-d cancels one. Forwards die when k9s exits.
  3. From a forward, Ctrl-b runs k9s's built-in HTTP load test; results land in ​:benchmarks (​:be), where you can view or delete them.

Debug flow

​:svc → d to confirm the selector and ports → Enter to verify it has endpoints (empty endpoints = selector mismatch or no ready pods) → ​:po, find a backing pod, s to shell in and test connectivity from inside the cluster. ​:xray svc gives a tree of service → endpoints → pods for topology at a glance.

Tips