Kubernetes Operations
Expert knowledge for Kubernetes cluster management, deployment, and troubleshooting with mastery of kubectl and cloud-native patterns.
When to Use This Skill
| Use this skill when... |
Use instead when... |
| Working with kubectl against pods, deployments, services, ingress, ConfigMaps, or Secrets |
Use kubectl-debugging when you specifically need kubectl debug ephemeral containers or node sessions |
| Applying or inspecting raw Kubernetes manifests and kustomize overlays |
Use helm-release-management when the workload is delivered as a Helm chart |
| Diagnosing cluster-level networking, storage, or workload health |
Use argocd-login when the issue is authenticating to ArgoCD before any cluster operation |
Core Expertise
Kubernetes Operations
- Workload Management: Deployments, StatefulSets, DaemonSets, Jobs, and CronJobs
- Networking: Services, Ingress, NetworkPolicies, and DNS configuration
- Configuration & Storage: ConfigMaps, Secrets, PersistentVolumes, and PersistentVolumeClaims
- Troubleshooting: Debugging pods, analyzing logs, and inspecting cluster events
Cluster Operations Process
- Manifest First: Always prefer declarative YAML manifests for resource management
- Validate & Dry-Run: Use
kubectl apply --dry-run=client to validate changes
- Inspect & Verify: After applying changes, verify with
kubectl get, kubectl describe, kubectl logs
- Monitor Health: Continuously check status of nodes, pods, and services
- Clean Up: Ensure old or unused resources are properly garbage collected
Essential Commands
# Resource management
kubectl apply -f manifest.yaml
kubectl get pods -A
kubectl describe pod <pod-name>
kubectl logs -f <pod-name>
kubectl exec -it <pod-name> -- /bin/bash
# Debugging
kubectl get events --sort-by='.lastTimestamp'
kubectl top nodes
kubectl top pods --containers
kubectl port-forward <pod-name> 8080:80
# Deployment management
kubectl rollout status deployment/<name>
kubectl rollout history deployment/<name>
kubectl rollout undo deployment/<name>
# Cluster inspection
kubectl cluster-info
kubectl get nodes -o wide
kubectl api-resources
Key Debugging Patterns
Pod Debugging
# Pod inspection
kubectl describe pod <pod-name>
kubectl get pod <pod-name> -o yaml
kubectl logs <pod-name> --previous
# Interactive debugging
kubectl exec -it <pod-name> -- /bin/bash
kubectl debug <pod-name> -it --image=busybox
kubectl port-forward <pod-name> 8080:80
Networking Troubleshooting
# Service debugging
kubectl get svc -o wide
kubectl get endpoints
kubectl describe svc <service>
# Network connectivity
kubectl run test-pod --image=busybox -it --rm -- sh
# Inside pod: nslookup, wget, nc commands
Common Issues
# CrashLoopBackOff debugging
kubectl logs <pod> --previous
kubectl describe pod <pod>
kubectl get events --field-selector involvedObject.name=<pod>
# Resource constraints
kubectl top pod <pod>
kubectl describe pod <pod> | grep -A 5 Limits
# State management
kubectl state list
kubectl state show <resource>
Best Practices
Context Safety (CRITICAL)
- Always specify
--context explicitly in every kubectl command
- Never rely on the current context - it may have been changed by another process
- Use
kubectl --context=<context-name> get pods format for all operations
- This prevents accidental operations on the wrong cluster (e.g., running production commands against staging)
# CORRECT: Explicit context
kubectl --context=gke_myproject_us-central1_prod get pods
kubectl --context=staging-cluster apply -f deployment.yaml
# WRONG: Relying on current context
kubectl get pods # Which cluster is this targeting?
Resource Definitions
- Use declarative YAML manifests
- Implement proper labels and selectors
- Define resource requests and limits
- Configure health checks (liveness/readiness probes)
Security
- Use NetworkPolicies to restrict traffic
- Implement RBAC for access control
- Store sensitive data in Secrets
- Run containers as non-root users
Monitoring
- Configure proper logging and metrics
- Set up alerts for critical conditions
- Use health checks and readiness probes
- Monitor resource usage and quotas
Agentic Optimizations
| Context |
Command |
| Pod status (structured) |
kubectl get pods -n <ns> -o json | jq '.items[] | {name:.metadata.name, status:.status.phase}' |
| Quick overview |
kubectl get pods -n <ns> -o wide |
| Events (compact) |
kubectl get events -n <ns> --sort-by='.lastTimestamp' -o json |
| Resource details |
kubectl get <resource> -o json |
| Logs (bounded) |
kubectl logs <pod> -n <ns> --tail=50 |
For detailed debugging commands, troubleshooting patterns, Helm workflows, and advanced K8s operations, see REFERENCE.md.
1---
2created: 2025-12-16
3modified: 2026-05-09
4reviewed: 2026-04-25
5name: kubernetes-operations
6description: "Kubernetes operations — deployment, management, troubleshooting, kubectl mastery. Use when the user mentions K8s, kubectl, pods, deployments, services, ingress, or cluster stability."
7user-invocable: false
8allowed-tools: Glob, Grep, Read, Bash(kubectl *), Bash(helm *), Bash(kustomize *), Edit, Write, TodoWrite, WebFetch
9---
10
11# Kubernetes Operations
12
13Expert knowledge for Kubernetes cluster management, deployment, and troubleshooting with mastery of kubectl and cloud-native patterns.
14
15## When to Use This Skill
16
17| Use this skill when... | Use <sibling> instead when... |
18|---|---|
19| Working with kubectl against pods, deployments, services, ingress, ConfigMaps, or Secrets | Use kubectl-debugging when you specifically need `kubectl debug` ephemeral containers or node sessions |
20| Applying or inspecting raw Kubernetes manifests and kustomize overlays | Use helm-release-management when the workload is delivered as a Helm chart |
21| Diagnosing cluster-level networking, storage, or workload health | Use argocd-login when the issue is authenticating to ArgoCD before any cluster operation |
22
23## Core Expertise
24
25**Kubernetes Operations**
26- **Workload Management**: Deployments, StatefulSets, DaemonSets, Jobs, and CronJobs
27- **Networking**: Services, Ingress, NetworkPolicies, and DNS configuration
28- **Configuration & Storage**: ConfigMaps, Secrets, PersistentVolumes, and PersistentVolumeClaims
29- **Troubleshooting**: Debugging pods, analyzing logs, and inspecting cluster events
30
31## Cluster Operations Process
32
331. **Manifest First**: Always prefer declarative YAML manifests for resource management
342. **Validate & Dry-Run**: Use `kubectl apply --dry-run=client` to validate changes
353. **Inspect & Verify**: After applying changes, verify with `kubectl get`, `kubectl describe`, `kubectl logs`
364. **Monitor Health**: Continuously check status of nodes, pods, and services
375. **Clean Up**: Ensure old or unused resources are properly garbage collected
38
39## Essential Commands
40
41```bash
42# Resource management
43kubectl apply -f manifest.yaml
44kubectl get pods -A
45kubectl describe pod <pod-name>
46kubectl logs -f <pod-name>
47kubectl exec -it <pod-name> -- /bin/bash
48
49# Debugging
50kubectl get events --sort-by='.lastTimestamp'
51kubectl top nodes
52kubectl top pods --containers
53kubectl port-forward <pod-name> 8080:80
54
55# Deployment management
56kubectl rollout status deployment/<name>
57kubectl rollout history deployment/<name>
58kubectl rollout undo deployment/<name>
59
60# Cluster inspection
61kubectl cluster-info
62kubectl get nodes -o wide
63kubectl api-resources
64```
65
66## Key Debugging Patterns
67
68**Pod Debugging**
69```bash
70# Pod inspection
71kubectl describe pod <pod-name>
72kubectl get pod <pod-name> -o yaml
73kubectl logs <pod-name> --previous
74
75# Interactive debugging
76kubectl exec -it <pod-name> -- /bin/bash
77kubectl debug <pod-name> -it --image=busybox
78kubectl port-forward <pod-name> 8080:80
79```
80
81**Networking Troubleshooting**
82```bash
83# Service debugging
84kubectl get svc -o wide
85kubectl get endpoints
86kubectl describe svc <service>
87
88# Network connectivity
89kubectl run test-pod --image=busybox -it --rm -- sh
90# Inside pod: nslookup, wget, nc commands
91```
92
93**Common Issues**
94```bash
95# CrashLoopBackOff debugging
96kubectl logs <pod> --previous
97kubectl describe pod <pod>
98kubectl get events --field-selector involvedObject.name=<pod>
99
100# Resource constraints
101kubectl top pod <pod>
102kubectl describe pod <pod> | grep -A 5 Limits
103
104# State management
105kubectl state list
106kubectl state show <resource>
107```
108
109## Best Practices
110
111**Context Safety (CRITICAL)**
112- **Always specify `--context`** explicitly in every kubectl command
113- Never rely on the current context - it may have been changed by another process
114- Use `kubectl --context=<context-name> get pods` format for all operations
115- This prevents accidental operations on the wrong cluster (e.g., running production commands against staging)
116
117```bash
118# CORRECT: Explicit context
119kubectl --context=gke_myproject_us-central1_prod get pods
120kubectl --context=staging-cluster apply -f deployment.yaml
121
122# WRONG: Relying on current context
123kubectl get pods # Which cluster is this targeting?
124```
125
126**Resource Definitions**
127- Use declarative YAML manifests
128- Implement proper labels and selectors
129- Define resource requests and limits
130- Configure health checks (liveness/readiness probes)
131
132**Security**
133- Use NetworkPolicies to restrict traffic
134- Implement RBAC for access control
135- Store sensitive data in Secrets
136- Run containers as non-root users
137
138**Monitoring**
139- Configure proper logging and metrics
140- Set up alerts for critical conditions
141- Use health checks and readiness probes
142- Monitor resource usage and quotas
143
144## Agentic Optimizations
145
146| Context | Command |
147|---------|---------|
148| Pod status (structured) | `kubectl get pods -n <ns> -o json \| jq '.items[] \| {name:.metadata.name, status:.status.phase}'` |
149| Quick overview | `kubectl get pods -n <ns> -o wide` |
150| Events (compact) | `kubectl get events -n <ns> --sort-by='.lastTimestamp' -o json` |
151| Resource details | `kubectl get <resource> -o json` |
152| Logs (bounded) | `kubectl logs <pod> -n <ns> --tail=50` |
153
154For detailed debugging commands, troubleshooting patterns, Helm workflows, and advanced K8s operations, see REFERENCE.md.