{"id":217,"date":"2026-07-17T07:36:13","date_gmt":"2026-07-17T07:36:13","guid":{"rendered":"https:\/\/alexawebservers.com\/blog\/100-essential-kubernetes-commands-every-devops-engineer-should-know\/"},"modified":"2026-07-17T07:36:13","modified_gmt":"2026-07-17T07:36:13","slug":"100-essential-kubernetes-commands-every-devops-engineer-should-know","status":"publish","type":"post","link":"https:\/\/alexawebservers.com\/blog\/100-essential-kubernetes-commands-every-devops-engineer-should-know\/","title":{"rendered":"100+ Essential Kubernetes Commands Every DevOps Engineer Should Know"},"content":{"rendered":"<p>Kubernetes has become the de facto standard for container orchestration. Whether you are managing a small cluster or a production-grade deployment spanning multiple regions, these 100+ commands will cover everything you need to operate Kubernetes effectively.<\/p>\n<h2>1. Cluster Information<\/h2>\n<p><code>kubectl cluster-info<\/code> \u2014 Display cluster information.<br \/>\n<code>kubectl cluster-info dump<\/code> \u2014 Dump cluster state for debugging.<br \/>\n<code>kubectl version<\/code> \u2014 Show client and server versions.<br \/>\n<code>kubectl config view<\/code> \u2014 Show merged kubeconfig settings.<br \/>\n<code>kubectl config get-contexts<\/code> \u2014 List available contexts.<br \/>\n<code>kubectl config current-context<\/code> \u2014 Show current context.<br \/>\n<code>kubectl config use-context my-cluster<\/code> \u2014 Switch to a different context.<br \/>\n<code>kubectl api-resources<\/code> \u2014 List all available API resources.<br \/>\n<code>kubectl api-versions<\/code> \u2014 List API versions available on the cluster.<br \/>\n<code>kubectl get componentstatuses<\/code> \u2014 Check control plane components health.<\/p>\n<h2>2. Pod Operations<\/h2>\n<p><code>kubectl get pods<\/code> \u2014 List all pods in the current namespace.<br \/>\n<code>kubectl get pods -A<\/code> \u2014 List pods across all namespaces.<br \/>\n<code>kubectl get pods -o wide<\/code> \u2014 List pods with more details (node, IP).<br \/>\n<code>kubectl describe pod my-pod<\/code> \u2014 Detailed info about a pod.<br \/>\n<code>kubectl logs my-pod<\/code> \u2014 View pod logs.<br \/>\n<code>kubectl logs -f my-pod<\/code> \u2014 Follow pod logs in real time.<br \/>\n<code>kubectl logs my-pod -c my-container<\/code> \u2014 Logs from a specific container.<br \/>\n<code>kubectl exec -it my-pod -- \/bin\/bash<\/code> \u2014 Open a shell inside a pod.<br \/>\n<code>kubectl port-forward my-pod 8080:80<\/code> \u2014 Forward local port to pod port.<br \/>\n<code>kubectl cp my-pod:\/path\/to\/file .\/local-file<\/code> \u2014 Copy files from\/to pods.<br \/>\n<code>kubectl top pod<\/code> \u2014 Show CPU\/memory metrics for pods.<br \/>\n<code>kubectl delete pod my-pod<\/code> \u2014 Delete a pod.<\/p>\n<h2>3. Deployments<\/h2>\n<p><code>kubectl get deployments<\/code> \u2014 List deployments.<br \/>\n<code>kubectl describe deployment my-deploy<\/code> \u2014 Detailed info.<br \/>\n<code>kubectl create deployment my-deploy --image=nginx<\/code> \u2014 Create a deployment.<br \/>\n<code>kubectl scale deployment my-deploy --replicas=5<\/code> \u2014 Scale replicas.<br \/>\n<code>kubectl autoscale deployment my-deploy --min=2 --max=10 --cpu-percent=80<\/code> \u2014 Auto-scale.<br \/>\n<code>kubectl set image deployment\/my-deploy nginx=nginx:1.25<\/code> \u2014 Update image.<br \/>\n<code>kubectl rollout status deployment\/my-deploy<\/code> \u2014 Check rollout status.<br \/>\n<code>kubectl rollout history deployment\/my-deploy<\/code> \u2014 Show rollout history.<br \/>\n<code>kubectl rollout undo deployment\/my-deploy<\/code> \u2014 Rollback to previous version.<br \/>\n<code>kubectl rollout restart deployment\/my-deploy<\/code> \u2014 Restart all pods gracefully.<\/p>\n<h2>4. Services and Networking<\/h2>\n<p><code>kubectl get services<\/code> \u2014 List services.<br \/>\n<code>kubectl describe service my-service<\/code> \u2014 Service details.<br \/>\n<code>kubectl expose deployment my-deploy --port=80 --type=LoadBalancer<\/code> \u2014 Expose as service.<br \/>\n<code>kubectl get endpoints<\/code> \u2014 List service endpoints.<br \/>\n<code>kubectl get ingress<\/code> \u2014 List ingress resources.<br \/>\n<code>kubectl describe ingress my-ingress<\/code> \u2014 Ingress details.<\/p>\n<h2>5. Configuration and Secrets<\/h2>\n<p><code>kubectl get configmaps<\/code> \u2014 List ConfigMaps.<br \/>\n<code>kubectl create configmap my-config --from-file=config.properties<\/code> \u2014 Create from file.<br \/>\n<code>kubectl create configmap my-config --from-literal=key=value<\/code> \u2014 Create from literal.<br \/>\n<code>kubectl get secrets<\/code> \u2014 List secrets.<br \/>\n<code>kubectl create secret generic my-secret --from-literal=password=abc123<\/code> \u2014 Create secret.<br \/>\n<code>kubectl get secret my-secret -o jsonpath=\"{.data.password}\" | base64 -d<\/code> \u2014 Decode secret.<\/p>\n<h2>6. Namespaces<\/h2>\n<p><code>kubectl get namespaces<\/code> \u2014 List namespaces.<br \/>\n<code>kubectl create namespace my-namespace<\/code> \u2014 Create a namespace.<br \/>\n<code>kubectl config set-context --current --namespace=my-namespace<\/code> \u2014 Switch default namespace.<br \/>\n<code>kubectl delete namespace my-namespace<\/code> \u2014 Delete a namespace and all resources.<\/p>\n<h2>7. Volumes and Storage<\/h2>\n<p><code>kubectl get pv<\/code> \u2014 List persistent volumes.<br \/>\n<code>kubectl get pvc<\/code> \u2014 List persistent volume claims.<br \/>\n<code>kubectl describe pvc my-claim<\/code> \u2014 PVC details.<br \/>\n<code>kubectl get storageclasses<\/code> \u2014 List storage classes.<\/p>\n<h2>8. Nodes and Cluster Administration<\/h2>\n<p><code>kubectl get nodes<\/code> \u2014 List cluster nodes.<br \/>\n<code>kubectl describe node my-node<\/code> \u2014 Node details and resource usage.<br \/>\n<code>kubectl top node<\/code> \u2014 Show CPU\/memory usage per node.<br \/>\n<code>kubectl cordon my-node<\/code> \u2014 Mark node as unschedulable.<br \/>\n<code>kubectl uncordon my-node<\/code> \u2014 Mark node as schedulable.<br \/>\n<code>kubectl drain my-node --ignore-daemonsets<\/code> \u2014 Safely evict all pods from a node.<br \/>\n<code>kubectl label node my-node disktype=ssd<\/code> \u2014 Add a label to a node.<\/p>\n<h2>9. Debugging and Troubleshooting<\/h2>\n<p><code>kubectl get events --sort-by=.lastTimestamp<\/code> \u2014 List events sorted by time.<br \/>\n<code>kubectl get events -A --watch<\/code> \u2014 Watch events across all namespaces.<br \/>\n<code>kubectl logs --previous my-pod<\/code> \u2014 Logs from previous container instance (after crash).<br \/>\n<code>kubectl debug my-pod --image=ubuntu -- \/bin\/bash<\/code> \u2014 Debug running pod with ephemeral container.<br \/>\n<code>kubectl run test-pod --image=alpine --rm -it -- \/bin\/sh<\/code> \u2014 Run temporary debug pod.<br \/>\n<code>kubectl top pod -A --sort-by=cpu<\/code> \u2014 Pods sorted by CPU usage.<\/p>\n<h2>10. Daily kubectl Shortcuts<\/h2>\n<p><code>alias k=kubectl<\/code> \u2014 Use k instead of kubectl.<br \/>\n<code>source <(kubectl completion bash)<\/code> \u2014 Enable bash completion.<br \/>\n<code>kubectl explain pod.spec.containers<\/code> \u2014 Docs for any resource field.<br \/>\n<code>kubectl api-resources --verbs=list --namespaced -o name | xargs -n1 kubectl get -A<\/code> \u2014 List ALL resources across all namespaces.<\/p>\n<hr \/>\n<p><strong>Master these commands and you can manage any Kubernetes cluster with confidence.<\/strong> We publish cheat sheets and references for DevOps tools \u2014 check out our <a href=\"https:\/\/alexawebservers.com\/blog\/products\/\" target=\"_blank\" rel=\"noopener noreferrer\">full product catalog<\/a> for guides on Linux, Docker, Git, Python, and more.<\/p>\n<p>For a complete DevOps toolkit covering Docker, Kubernetes, CI\/CD, and server automation, see the <a href=\"https:\/\/ovidia1.gumroad.com\/l\/all-8-bundle\" target=\"_blank\" rel=\"noopener noreferrer\">All-8 Bundle ($69)<\/a> \u2014 8 premium products at 40% off.<\/p>\n<p><strong>Also see:<\/strong> Our <a href=\"https:\/\/alexawebservers.com\/blog\/80-essential-docker-commands-every-developer-should-know\/\" target=\"_blank\" rel=\"noopener noreferrer\">80+ Essential Docker Commands<\/a> guide for container basics, and the <a href=\"https:\/\/alexawebservers.com\/blog\/100-essential-linux-commands-every-sysadmin-should-know\/\" target=\"_blank\" rel=\"noopener noreferrer\">100 Essential Linux Commands<\/a> guide for server administration.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Complete reference of 100+ essential Kubernetes commands. Covers pods, deployments, services, configmaps, secrets, nodes, debugging, and more.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-217","post","type-post","status-publish","format-standard","hentry","category-linux-devops"],"_links":{"self":[{"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":0,"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"wp:attachment":[{"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexawebservers.com\/blog\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}