K9s gives you a real time, interactive terminal dashboard for managing every resource in your cluster.
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)