| name | kubectl |
| description | Manage Kubernetes resources, contexts, and workloads with kubectl. Use when tasks mention kubectl, Kubernetes resources, kubeconfig, kubectl apply, kubectl get pods, Kubernetes contexts, or KUBECONFIG. |
| license | MIT |
| metadata | {"author":"greedychipmunk","version":"1.0"} |
kubectl
Use this skill to keep Kubernetes resource management deterministic and safe across clusters and namespaces.
Intent Router
| Request | Reference | Load When |
|---|
| Install, kubeconfig setup, contexts, env vars | resources/install-and-setup.md | User needs to install kubectl or configure KUBECONFIG/contexts |
| Core commands: get/describe/apply/delete/logs/exec | resources/command-cookbook.md | User needs daily kubectl operations |
| Resources, labels, namespaces, explain | resources/resource-management.md | User asks about resource types, labels, selectors, or declarative workflows |
| Pod crashes, ImagePull errors, events, debug | resources/troubleshooting.md | User encounters CrashLoopBackOff, OOMKilled, or needs cluster diagnostics |
Quick Start
kubectl cluster-info
kubectl get nodes
kubectl config current-context
kubectl config view --minify
kubectl get pods -A
kubectl apply -f deployment.yaml --dry-run=client
kubectl apply -f deployment.yaml
Core Command Tracks
- Read state:
kubectl get/describe <resource> — inspect current cluster state
- Apply changes:
kubectl apply -f — declarative reconciliation
- Logs:
kubectl logs <pod> [-c <container>] [-f] [--previous]
- Shell:
kubectl exec -it <pod> -- bash
- Port forward:
kubectl port-forward <pod> 8080:80
- Rollout:
kubectl rollout status/history/undo deployment/<name>
- Scale:
kubectl scale deployment/<name> --replicas=3
- Output formats:
-o wide, -o json, -o yaml, -o jsonpath
Safety Guardrails
- Always confirm active context (
kubectl config current-context) before applying changes to prevent applying to the wrong cluster.
- Always specify namespace explicitly with
-n <namespace> for production operations; never rely on default namespace alone.
- Use
--dry-run=client -o yaml to preview resources before applying.
- Use
kubectl diff -f <file> to see what will change before applying.
- Confirm before running
kubectl delete — especially with label selectors (-l) which can match many resources.
- Never run
kubectl delete namespace <name> without explicit user confirmation; it deletes all resources in the namespace.
- Prefer
kubectl rollout undo over direct manifest rewrites for reverting deployments.
kubectl get events --sort-by=.lastTimestamp -n my-namespace
kubectl logs my-pod --previous -n my-namespace
Workflow
- Confirm context:
kubectl config current-context and kubectl config get-contexts.
- Inspect current state with
kubectl get and kubectl describe before making changes.
- Preview changes with
kubectl diff -f <file> or --dry-run=client.
- Apply changes with
kubectl apply -f <file>.
- Monitor rollout with
kubectl rollout status deployment/<name>.
- On failure, check events with
kubectl get events --sort-by=.lastTimestamp.
Related Skills
- helm — package manager for Kubernetes applications
- docker — container image building for Kubernetes workloads
References