Kubernetes (kubectl) Reference
Essential kubectl commands for Kubernetes management - from pods to deployments
Quick Start
Deploy Your First App
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80
kubectl get pods Apply from YAML
kubectl apply -f deployment.yaml
kubectl get deployments
kubectl logs -f <pod-name> Cluster Information
kubectl cluster-infoDisplay cluster informationkubectl versionShow kubectl and cluster versionkubectl config viewView kubeconfig settingskubectl config current-contextShow current contextkubectl config use-context <name>Switch to different contextkubectl get nodesList all nodes in clusterkubectl describe node <name>Show node detailskubectl top nodesShow node resource usagePod Management
kubectl get podsList pods in current namespacekubectl get pods -AList pods in all namespaceskubectl get pods -o wideList pods with more detailskubectl describe pod <name>Show pod details and eventskubectl logs <pod>View pod logskubectl logs -f <pod>Follow pod logs in real-timekubectl logs <pod> -c <container>View logs from specific containerkubectl exec -it <pod> -- bashExecute interactive shell in podkubectl exec <pod> -- <command>Execute command in podkubectl delete pod <name>Delete a podkubectl delete pod <name> --grace-period=0 --forceForce delete pod immediatelykubectl top podsShow pod resource usagekubectl port-forward <pod> 8080:80Forward local port to podDeployments
kubectl get deploymentsList deploymentskubectl describe deployment <name>Show deployment detailskubectl create deployment <name> --image=<image>Create deploymentkubectl scale deployment <name> --replicas=3Scale deployment to N replicaskubectl set image deployment/<name> <container>=<image>Update deployment imagekubectl rollout status deployment/<name>Check rollout statuskubectl rollout history deployment/<name>View rollout historykubectl rollout undo deployment/<name>Rollback to previous versionkubectl rollout restart deployment/<name>Restart deploymentkubectl delete deployment <name>Delete deploymentServices
kubectl get servicesList serviceskubectl get svcList services (short)kubectl describe service <name>Show service detailskubectl expose deployment <name> --port=80Expose deployment as servicekubectl delete service <name>Delete serviceNamespaces
kubectl get namespacesList all namespaceskubectl get nsList namespaces (short)kubectl create namespace <name>Create namespacekubectl delete namespace <name>Delete namespacekubectl config set-context --current --namespace=<name>Switch default namespacekubectl get pods -n <namespace>List pods in specific namespaceConfigMaps
kubectl get configmapsList ConfigMapskubectl get cmList ConfigMaps (short)kubectl describe configmap <name>Show ConfigMap detailskubectl create configmap <name> --from-literal=key=valueCreate ConfigMap from literalkubectl create configmap <name> --from-file=<file>Create ConfigMap from filekubectl delete configmap <name>Delete ConfigMapSecrets
kubectl get secretsList secretskubectl describe secret <name>Show secret detailskubectl create secret generic <name> --from-literal=key=valueCreate secret from literalkubectl create secret generic <name> --from-file=<file>Create secret from filekubectl delete secret <name>Delete secretApply & Manage Resources
kubectl apply -f <file.yaml>Apply configuration from filekubectl apply -f <directory>/Apply all configs in directorykubectl apply -f <url>Apply configuration from URLkubectl delete -f <file.yaml>Delete resources from filekubectl diff -f <file.yaml>Show diff before applyingkubectl get -f <file.yaml>Get resources defined in fileDebugging & Troubleshooting
kubectl get eventsView cluster eventskubectl get events --sort-by=.metadata.creationTimestampView events sorted by timekubectl describe pod <name>Debug pod issueskubectl logs <pod> --previousView logs from previous containerkubectl get pod <name> -o yamlExport pod definition as YAMLkubectl explain pod.specShow documentation for resource fieldkubectl run debug --rm -it --image=busybox -- shCreate temporary debug podOther Useful Commands
kubectl get allList all resources in namespacekubectl api-resourcesList all resource typeskubectl label pod <name> key=valueAdd label to podkubectl annotate pod <name> key=valueAdd annotation to podkubectl get pods -l app=myappFilter pods by labelkubectl cp <pod>:/path/file ./fileCopy file from pod to localkubectl cp ./file <pod>:/path/fileCopy file from local to podNeed time management tools?
Try Focus 25 →