# kubectl Essential Commands ## Cluster & Node ```bash kubectl cluster-info kubectl get nodes kubectl describe node kubectl top nodes kubectl drain --ignore-daemonsets kubectl uncordon ``` ## Pod Operations ```bash kubectl get pods -A # All namespaces kubectl get pods -o wide # Extended info kubectl describe pod kubectl logs kubectl logs -f # Follow kubectl logs --previous # Previous crash kubectl exec -it -- /bin/bash ``` ## Deployment ```bash kubectl apply -f manifest.yaml kubectl apply -f ./manifests/ kubectl apply -f manifest.yaml --dry-run=client -o yaml # Preview kubectl set image deployment/myapp app=myapp:v2 kubectl delete -f manifest.yaml ``` ## Service & Network ```bash kubectl port-forward service/myapp 8080:8080 kubectl get svc kubectl exec -it -- curl http://service:8080 kubectl exec -it -- nslookup kubernetes.default ``` ## Debugging (Get → Describe → Logs) ```bash kubectl get pods -o wide kubectl get events -n --sort-by='.lastTimestamp' kubectl describe pod kubectl logs -c ``` ## Output & Filtering ```bash kubectl get pods -o json kubectl get pods -o yaml kubectl get pods -l app=myapp,tier=frontend kubectl get pods --field-selector=status.phase=Running kubectl get pods -w # Watch ``` ## Flags | Flag | Purpose | |------|---------| | `-n` | Namespace | | `-A` | All namespaces | | `-o` | Output format | | `-l` | Label selector | | `-w` | Watch | ## Aliases ```bash alias k='kubectl' alias kgp='kubectl get pods' alias kd='kubectl describe' alias kl='kubectl logs' ```