Kubernetes (kubectl)
kubectl talks to a cluster's API server. Almost every command takes -n <namespace> (or -A for all namespaces) — forgetting it is the number-one reason "my pod isn't there." Set a default namespace to save the typing.
Inspect Resources
| Command |
Shows |
kubectl get pods |
pods in the current namespace |
kubectl get pods -A |
pods across all namespaces |
kubectl get pods -o wide |
add node & IP columns |
kubectl get all |
pods, services, deployments, etc. |
kubectl describe pod <name> |
events + full detail for one object |
kubectl get pod <name> -o yaml |
the live manifest |
Context & Namespace
| Command |
Does |
kubectl config get-contexts |
list clusters you can talk to |
kubectl config current-context |
which cluster am I on? |
kubectl config use-context <name> |
switch clusters |
kubectl get pods -n kube-system |
target one namespace |
kubectl config set-context --current --namespace=dev |
set a default namespace |
Know your context before you act. The same kubectl delete runs against whatever context is current — including prod. kubectx / kubens (or a shell prompt that shows the context) make the active target impossible to miss.
Apply & Manage
| Command |
Does |
kubectl apply -f app.yaml |
create or update from a manifest |
kubectl delete -f app.yaml |
delete what the manifest defines |
kubectl edit deploy <name> |
edit a live object in $EDITOR |
kubectl scale deploy <name> --replicas=3 |
change replica count |
kubectl rollout restart deploy <name> |
restart pods (e.g. after a config change) |
kubectl rollout status deploy <name> |
watch a rollout finish |
kubectl rollout undo deploy <name> |
roll back to the previous version |
Debugging
| Command |
Does |
kubectl logs <pod> |
print a pod's logs |
kubectl logs -f <pod> |
follow logs live |
kubectl logs <pod> --previous |
logs from the crashed instance |
kubectl exec -it <pod> -- sh |
shell into a running pod |
kubectl port-forward <pod> 8080:80 |
tunnel a local port to the pod |
kubectl get events --sort-by=.lastTimestamp |
recent cluster events |
Nodes & Cluster
| Command |
Shows / does |
kubectl get nodes |
cluster nodes and their status |
kubectl top nodes |
live CPU / memory per node (needs metrics-server) |
kubectl top pods |
resource use per pod |
kubectl cluster-info |
control-plane endpoints |
kubectl cordon <node> |
stop scheduling new pods onto a node |
kubectl drain <node> |
evict pods to prep a node for maintenance |