Install
openclaw skills install kubectlExecute and manage Kubernetes clusters via kubectl commands. Query resources, deploy applications, debug containers, manage configurations, and monitor cluster health. Use when working with Kubernetes clusters, containers, deployments, or pod diagnostics.
openclaw skills install kubectlExecute Kubernetes cluster management operations using the kubectl command-line tool.
This skill enables agents to:
~/.kube/config)macOS:
brew install kubernetes-cli
Linux:
apt-get install -y kubectl # Ubuntu/Debian
yum install -y kubectl # RHEL/CentOS
Verify:
kubectl version --client
kubectl cluster-info # Test connection
kubectl get pods # List all pods in current namespace
kubectl get pods -A # All namespaces
kubectl get pods -o wide # More columns
kubectl get nodes # List nodes
kubectl describe pod POD_NAME # Detailed info with events
kubectl logs POD_NAME # Get logs
kubectl logs -f POD_NAME # Follow logs (tail -f)
kubectl logs POD_NAME -c CONTAINER # Specific container
kubectl logs POD_NAME --previous # Previous container logs
kubectl exec -it POD_NAME -- /bin/bash # Interactive shell
kubectl exec POD_NAME -- COMMAND # Run single command
kubectl apply -f deployment.yaml # Apply config
kubectl create -f deployment.yaml # Create resource
kubectl apply -f deployment.yaml --dry-run=client # Test
kubectl set image deployment/APP IMAGE=IMAGE:TAG # Update image
kubectl scale deployment/APP --replicas=3 # Scale pods
kubectl rollout status deployment/APP # Check status
kubectl rollout undo deployment/APP # Rollback
kubectl config view # Show kubeconfig
kubectl config get-contexts # List contexts
kubectl config use-context CONTEXT # Switch context
# 1. Identify the issue
kubectl describe pod POD_NAME
# 2. Check logs
kubectl logs POD_NAME
kubectl logs POD_NAME --previous
# 3. Execute debug commands
kubectl exec -it POD_NAME -- /bin/bash
# 4. Check events
kubectl get events --sort-by='.lastTimestamp'
# 1. Update image
kubectl set image deployment/MY_APP my-app=my-app:v2
# 2. Monitor rollout
kubectl rollout status deployment/MY_APP -w
# 3. Verify
kubectl get pods -l app=my-app
# 4. Rollback if needed
kubectl rollout undo deployment/MY_APP
# 1. Drain node (evicts all pods)
kubectl drain NODE_NAME --ignore-daemonsets
# 2. Do maintenance
# ...
# 3. Bring back online
kubectl uncordon NODE_NAME
The --output (-o) flag supports multiple formats:
table — Default tabular formatwide — Extended table with additional columnsjson — JSON format (useful with jq)yaml — YAML formatjsonpath — JSONPath expressionscustom-columns — Define custom output columnsname — Only resource namesExamples:
kubectl get pods -o json | jq '.items[0].metadata.name'
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase
-n, --namespace=<ns> # Operate in specific namespace
-A, --all-namespaces # Operate across all namespaces
--context=<context> # Use specific kubeconfig context
-o, --output=<format> # Output format (json, yaml, table, etc.)
--dry-run=<mode> # Dry-run mode (none, client, server)
-l, --selector=<labels> # Filter by labels
--field-selector=<selector> # Filter by fields
-v, --v=<int> # Verbosity level (0-9)
--dry-run=client — Fast client-side validation (test commands safely)--dry-run=server — Server-side validation (more accurate)--dry-run=none — Execute for real (default)Always test with --dry-run=client first:
kubectl apply -f manifest.yaml --dry-run=client
For detailed reference material, command-by-command documentation, troubleshooting guides, and advanced workflows, see:
Use label selectors for bulk operations:
kubectl delete pods -l app=myapp
kubectl get pods -l env=prod,tier=backend
Watch resources in real-time:
kubectl get pods -w # Watch for changes
Use -A flag for all namespaces:
kubectl get pods -A # See pods everywhere
Save outputs for later comparison:
kubectl get deployment my-app -o yaml > deployment-backup.yaml
Check before you delete:
kubectl delete pod POD_NAME --dry-run=client
kubectl help # General help
kubectl COMMAND --help # Command help
kubectl explain pods # Resource documentation
kubectl explain pods.spec # Field documentation
KUBECONFIG — Path to kubeconfig file (can include multiple paths separated by :)KUBECTL_CONTEXT — Override default contextVersion: 1.0.0
License: MIT
Compatible with: kubectl v1.20+, Kubernetes v1.20+