| name | kubectl |
| description | This skill should be used when users need to interact with Kubernetes clusters via kubectl CLI. It covers pod management, deployment operations, log viewing, debugging, resource monitoring, scaling, ConfigMaps, Secrets, Services, and all standard kubectl operations. Supports multiple clusters (production, staging, local k3s) with predefined aliases. Triggers on requests mentioning Kubernetes, k8s, pods, deployments, containers, or cluster operations. |
Kubectl Skill
This skill enables comprehensive Kubernetes cluster management using kubectl and related tools.
Environment
Cluster Aliases
Three cluster/namespace combinations are pre-configured:
| Alias | Cluster | Namespace | Purpose |
|---|
k1 | AWS EKS Production | production | 生产环境 |
k2 | AWS EKS Production | staging | 预发布环境 |
k | K3s (192.168.10.117) | simplex | 本地开发环境 |
Usage:
k1 get pods
k2 get pods
k get pods
Additional Tools
kubectx - Switch between clusters
kubens - Switch between namespaces
argocd - GitOps deployments (see separate skill)
kargo - Progressive delivery (see separate skill)
Safety Protocol
Dangerous Operations Requiring Confirmation
Before executing any of the following operations, explicitly confirm with the user:
- Delete operations:
delete pod, delete deployment, delete service, delete pvc
- Scale to zero:
scale --replicas=0
- Production modifications: Any
k1 command that modifies resources
- Drain/cordon nodes:
drain, cordon, uncordon
- Apply/patch: Changes to production resources
Confirmation Format
⚠️ 危险操作确认
环境: [Production/Staging/Local]
操作: [具体操作描述]
资源: [受影响的资源]
影响: [潜在影响说明]
是否继续执行?
Common Operations Reference
Resource Viewing
Pods
k1 get pods
k1 get pods -o wide
k1 get pods --show-labels
k1 get pods -l app=simplex-api
k1 describe pod <pod-name>
k1 get pods -w
Deployments
k1 get deployments
k1 get deploy -o wide
k1 describe deployment <name>
k1 rollout status deployment/<name>
k1 rollout history deployment/<name>
Services & Endpoints
k1 get services
k1 get svc
k1 describe svc <name>
k1 get endpoints <name>
All Resources
k1 get all
k1 get pods,svc,deploy
k1 get all -l app=simplex-api
Logs & Debugging
Viewing Logs
k1 logs <pod-name>
k1 logs -f <pod-name>
k1 logs --tail=100 <pod-name>
k1 logs --since=1h <pod-name>
k1 logs --since=10m <pod-name>
k1 logs --previous <pod-name>
k1 logs <pod-name> -c <container-name>
k1 logs <pod-name> --all-containers=true
Executing Commands
k1 exec <pod-name> -- <command>
k1 exec -it <pod-name> -- /bin/sh
k1 exec -it <pod-name> -- /bin/bash
k1 exec -it <pod-name> -c <container> -- /bin/sh
Debugging
k1 describe pod <pod-name>
k1 get pod <pod-name> -o yaml
k1 debug <pod-name> -it --image=busybox
k1 top pods
k1 top nodes
Deployment Management
Scaling
k1 scale deployment/<name> --replicas=3
k1 autoscale deployment/<name> --min=2 --max=5 --cpu-percent=80
Rolling Updates
k1 set image deployment/<name> <container>=<image>:<tag>
k1 rollout status deployment/<name>
k1 rollout pause deployment/<name>
k1 rollout resume deployment/<name>
k1 rollout undo deployment/<name>
k1 rollout undo deployment/<name> --to-revision=2
Restart
k1 rollout restart deployment/<name>
Configuration Resources
ConfigMaps
k1 get configmaps
k1 get cm
k1 describe cm <name>
k1 get cm <name> -o yaml
k1 create configmap <name> --from-file=<path>
k1 create configmap <name> --from-literal=key=value
Secrets
k1 get secrets
k1 get secret <name> -o yaml
k1 get secret <name> -o jsonpath='{.data.password}' | base64 -d
k1 create secret generic <name> --from-literal=password=xxx
PersistentVolumeClaims
k1 get pvc
k1 describe pvc <name>
Network Operations
Port Forwarding
k1 port-forward pod/<name> 8080:80
k1 port-forward svc/<name> 8080:80
k1 port-forward pod/<name> 8080:80 &
Service Exposure
k1 expose deployment/<name> --port=80 --target-port=8080
k1 get svc <name> -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Cluster Management
Nodes
k1 get nodes
k1 get nodes -o wide
k1 describe node <name>
k1 top nodes
Namespaces
k1 get namespaces
kubens <namespace>
k1 create namespace <name>
Context Management
kubectx
kubectx <context-name>
kubectl config current-context
Resource Monitoring
k1 top pods
k1 top pods --sort-by=cpu
k1 top pods --sort-by=memory
k1 top nodes
k1 get hpa
k1 describe hpa <name>
Output Formatting
For Status Checks
Provide concise summaries:
✅ Pod 状态 (production)
┌──────────────────────────┬─────────┬──────────┬─────────┐
│ Pod │ Status │ Restarts │ Age │
├──────────────────────────┼─────────┼──────────┼─────────┤
│ simplex-api-xxx-abc │ Running │ 0 │ 2d │
│ simplex-api-xxx-def │ Running │ 0 │ 2d │
└──────────────────────────┴─────────┴──────────┴─────────┘
For Troubleshooting
When investigating issues, gather:
- Pod status:
k1 get pod <name>
- Pod events:
k1 describe pod <name>
- Recent logs:
k1 logs --tail=50 <name>
- Resource usage:
k1 top pod <name>
Custom Output Formats
k1 get pods -o json
k1 get pod <name> -o yaml
k1 get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase
k1 get pods -o jsonpath='{.items[*].metadata.name}'
Troubleshooting Workflows
Pod Not Starting
- Check pod status:
k1 get pod <name>
- Check events:
k1 describe pod <name> (look at Events section)
- Check logs:
k1 logs <name> or k1 logs --previous <name>
- Common issues:
ImagePullBackOff: Check image name and registry credentials
CrashLoopBackOff: Check application logs
Pending: Check resource requests and node capacity
High Resource Usage
- Check pod usage:
k1 top pods --sort-by=memory
- Check node usage:
k1 top nodes
- Check HPA status:
k1 get hpa
- Consider scaling:
k1 scale deployment/<name> --replicas=N
Service Not Accessible
- Check service:
k1 get svc <name>
- Check endpoints:
k1 get endpoints <name>
- Check pod labels match service selector
- Test from within cluster:
k1 exec -it <pod> -- curl <service>:<port>
Integration Notes
For GitOps operations (deployments via git), use the ArgoCD and Kargo skills:
- ArgoCD: Application sync, rollback, status
- Kargo: Progressive delivery, freight promotion
For AWS infrastructure operations, use the AWS CLI skill.