K9s gives you a real-time, interactive terminal dashboard for managing every resource in your cluster with keyboard shortcuts for everything.
Why kubectl Alone Isn't Enough
Anyone who has spent serious time with Kubernetes knows the pain in debugging a crashing pod means running four or five different commands just to understand what's happening. You're constantly context-switching between terminal windows, squinting at JSON blobs, and copy-pasting pod names.
# The old way — just to debug ONE crashing pod
kubectl get pods -n production
kubectl describe pod api-gateway-7d9f8b-xkp2q -n production
kubectl logs api-gateway-7d9f8b-xkp2q -n production --previous
kubectl exec -it api-gateway-7d9f8b-xkp2q -n production -- /bin/sh
kubectl port-forward api-gateway-7d9f8b-xkp2q 8080:80 -n production
Enter fullscreen mode
Exit fullscreen mode
That's five commands, three copy-pastes, and a lot of cognitive overhead just for one pod.
kubectl vs K9s Side by Side
Task
K9s
kubectl
View all pods
:pod then Enter
kubectl get pods -A
Stream pod logs
Select + l
kubectl logs -f <pod-name>
Exec into pod shell
Select + s
kubectl exec -it <pod> -- /bin/sh
Port-forward
Select + Shift+F
kubectl port-forward <pod> 8080:80
Delete a resource
Select + Ctrl+D
kubectl delete pod <name>
Edit resource YAML
Select + e
kubectl edit pod <name>
Switch namespace
Ctrl+A for all namespaces
-n flag on every command
Real-time CPU/Mem
✅ Built-in pulse view
❌ Requires separate tooling
Rolling restart
Select + Ctrl+L
kubectl rollout restart deploy/<name>
Decode secrets
Select + x
kubectl get secret <name> -o jsonpath=...
What is K9s?
K9s is an open-source, terminal-based UI built by Fernand Galiana that wraps the entire Kubernetes API in a fast, keyboard-driven interface.
It's not a GUI, it lives in your terminal, it's blazing fast, and once you learn the shortcuts, you'll never want to go back to plain kubectl.
Think of K9s as htop for Kubernetes , it continuously watches your cluster state and updates in real time.
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
K9s — Kubernetes CLI To Manage Your Clusters In Style!
Enter fullscreen mode
Exit fullscreen mode
Complete Shortcut Reference
Global Navigation
These shortcuts work from any view in K9s.
Shortcut
Action
: + resource name
Go to any resource view (e.g., :pod, :svc, :node)
?
Open help / shortcut cheat sheet
Ctrl+A
Toggle all namespaces view
Ctrl+C
Quit K9s
Esc
Go back / exit current view / cancel filter
/
Enter filter mode (fuzzy search current list)
!
Toggle error view
Ctrl+U
Clear filter
↑ / ↓ or k / j
Navigate up/down (vim-style works!)
g / G
Jump to top / bottom of list
Ctrl+R
Refresh / reload the current view
:ctx
Switch Kubernetes context
:ns
Switch namespace
:h
View command history
Ctrl+E
Hide / show the header bar
Ctrl+P
Toggle CPU/Mem pulse panel on/off
z
Toggle error panel
Pod Management
Enter :pod or :po to access this view.
Shortcut
Action
l
Stream logs for the selected pod
p
Previous logs (like --previous flag — for crashed containers)
s
Open a shell (exec) into the selected pod/container
d
Describe the selected pod (full metadata + events)
e
Edit the pod YAML in your $EDITOR
y
View full YAML of the selected resource
Ctrl+K
Force kill / delete the selected pod (no confirmation)
Ctrl+D
Delete with grace period (safe delete, with confirmation)
Shift+F
Open port-forward menu for the pod
f
Show all active port-forwards
Ctrl+W
Toggle wide output (shows more columns)
Shift+C
Sort by CPU usage
Shift+M
Sort by memory usage
Shift+N
Sort by pod name
Shift+O
Sort by container count
Shift+R
Sort by restart count
Shift+T
Sort by age (time)
Ctrl+L
Rolling restart of the pods in the parent deployment
a
View containers within the pod
Enter
Drill into pod / select container
Log Viewer
Press l on any pod to enter the log viewer.
Shortcut
Action
f
Toggle full screen for log view
w
Toggle line wrap
↑ / ↓
Scroll up/down through logs
Page Up / Page Down
Scroll by full page
g
Jump to top (oldest logs)
G
Jump to bottom (newest / live logs)
/
Search / filter within logs
s
Toggle auto-scroll (tail mode on/off)
t
Toggle timestamps in log output
p
View previous container logs (for restarted containers)
Ctrl+S
Save logs to a local file
0–9
Switch between containers within the pod
c
Copy log line to clipboard
Services & Networking
Command / Shortcut
Action
:svc
View all Services
:ing
View all Ingresses
:ep
View Endpoints
:netpol
View NetworkPolicies
:pf
Manage all active port-forwards
Shift+F on a Service
Open port-forward dialog for the service
d on a Service
Describe service (selectors, ports, endpoints)
y on a Service
View full Service YAML
e on a Service
Edit service configuration
Ctrl+B on a Service
Benchmark the service endpoint (load test)
Enter on an Ingress
View ingress rules and backend info
Deployments, ReplicaSets & StatefulSets
Command / Shortcut
Action
:deploy or :dp
View all Deployments
:rs
View all ReplicaSets
:sts
View all StatefulSets
:ds
View all DaemonSets
Ctrl+L on a Deployment
Trigger a rolling restart
s on a Deployment
Scale — open scale dialog (set replica count)
d
Describe the deployment (events, conditions, strategy)
Enter on a Deployment
Drill down into pods belonging to deployment
y
View full deployment YAML
e
Edit deployment YAML inline
Ctrl+D
Delete the deployment (with confirmation)
Nodes & Cluster Management
Command / Shortcut
Action
:node or :no
View all cluster nodes
Shift+C
Sort nodes by CPU usage
Shift+M
Sort nodes by memory usage
d on a Node
Describe node (taints, conditions, capacity, allocatable)
Enter on a Node
View all pods running on that node
y on a Node
View full node YAML (labels, annotations)
Ctrl+U on a Node
Cordon a node (prevent new pod scheduling)
Ctrl+N on a Node
Uncordon a node (re-enable scheduling)
Ctrl+D on a Node
Drain the node (evict all pods safely)
:cl
Cluster info view (API server, version info)
:ev
View all cluster events (warnings, errors)
ConfigMaps, Secrets & Storage
Command / Shortcut
Action
:cm
View all ConfigMaps
:secret
View all Secrets
x on a Secret
Decode and view base64 secret values
e on a Secret
Edit a secret (values auto-encoded on save)
:pvc
View PersistentVolumeClaims
:pv
View PersistentVolumes
:sc
View StorageClasses
d
Describe selected resource
Ctrl+D
Delete selected resource
RBAC & Access Control
Command
Action
:sa
View ServiceAccounts
:rb
View RoleBindings
:crb
View ClusterRoleBindings
:cr
View ClusterRoles
:role
View Roles (namespaced)
:hpa
View HorizontalPodAutoscalers
:vpa
View VerticalPodAutoscalers
:po (PodDisruptionBudgets context)
View PodDisruptionBudgets
Jobs & CronJobs
Command / Shortcut
Action
:job
View all Jobs
:cj
View all CronJobs
Ctrl+T on a CronJob
Trigger a CronJob manually (creates job immediately)
Enter on a Job
View pods spawned by this job
d
Describe the job (completions, conditions, duration)
Ctrl+D
Delete job
Custom Resources (CRDs)
Command / Shortcut
Action
:crd
View all Custom Resource Definitions
:<crd-short-name>
Navigate directly to any CRD (e.g., :vs for VirtualService)
Enter on a CRD
List all instances of that custom resource
d
Describe a CRD instance
y
View the YAML of a CRD instance
e
Edit a CRD instance
All Resource Commands at a Glance
Type these with : from anywhere in K9s to jump to any resource view instantly.
Workloads
Command
Resource
:pod / :po
Pods
:deploy / :dp
Deployments
:sts
StatefulSets
:ds
DaemonSets
:rs
ReplicaSets
:job
Jobs
:cj
CronJobs
Networking
Command
Resource
:svc
Services
:ing
Ingresses
:ep
Endpoints
:netpol
NetworkPolicies
:pf
Active Port Forwards
Cluster
Command
Resource
:node / :no
Nodes
:ns
Namespaces
:ctx
Contexts (switch cluster)
:ev
Events
:cl
Cluster Info
Config & Storage
Command
Resource
:cm
ConfigMaps
:secret
Secrets
:sa
ServiceAccounts
:pvc
PersistentVolumeClaims
:pv
PersistentVolumes
:sc
StorageClasses
RBAC
Command
Resource
:rb
RoleBindings
:crb
ClusterRoleBindings
:cr
ClusterRoles
:role
Roles
Auto-scaling
Command
Resource
:hpa
HorizontalPodAutoscalers
:vpa
VerticalPodAutoscalers
Advanced Views
Command
Description
:crd
All Custom Resource Definitions
:xray deploy default
Full dependency tree for deployments in default ns
:pulses
Live cluster-wide CPU/MEM metrics dashboard
:popeye
Run cluster sanitizer (finds misconfigs, deprecated APIs)
🔗 Resources
If this helped you, drop a ❤️ and share it with your team. Found a shortcut I missed? Drop it in the comments below! 👇
Happy clustering!
Top comments (0)