When to use this skill
Use this skill whenever the user wants to:
- Write Deployment, Service, ConfigMap, Secret, or Ingress manifests
- Deploy, scale, or troubleshoot pods and clusters with kubectl
- Design resource limits, health probes, rolling updates, and operational workflows
- Set up local development clusters with minikube, kind, or k3d
How to use this skill
Workflow
- Write manifests — define workloads and services in YAML
- Apply to cluster — use
kubectl apply -fto deploy - Verify status — check rollout, pod health, and service endpoints
- Debug issues — inspect logs, describe resources, exec into pods
Quick Start Example
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:1.0.0
ports:
- containerPort: 8080
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: myapp
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 8080
type: ClusterIP
# Apply manifests
kubectl apply -f deployment.yaml
# Check rollout status
kubectl rollout status deployment/myapp
# View pod logs
kubectl logs -l app=myapp --tail=50
# Exec into a pod for debugging
kubectl exec -it deployment/myapp -- /bin/sh
Essential kubectl Commands
| Command | Purpose |
|---------|---------|
| kubectl apply -f <file> | Create or update resources |
| kubectl get pods -w | Watch pod status |
| kubectl describe pod <name> | Inspect pod details and events |
| kubectl logs <pod> -f | Stream container logs |
| kubectl rollout undo deployment/<name> | Roll back a deployment |
| kubectl scale deployment/<name> --replicas=5 | Scale replicas |
Best Practices
- Always set
requestsandlimitsfor CPU and memory - Configure
livenessProbeandreadinessProbefor every container - Use Secrets for sensitive data and ConfigMaps for configuration
- Define rolling update strategy with
maxSurgeandmaxUnavailable - Collect logs and metrics centrally; use RBAC and NetworkPolicies in production
Troubleshooting
- CrashLoopBackOff: Run
kubectl logs <pod> --previousto see crash output; check resource limits and probe configuration - ImagePullBackOff: Verify image name/tag exists and imagePullSecrets are configured
- Pending pods: Run
kubectl describe pod <name>— look for insufficient resources or unschedulable nodes - Service not reachable: Verify selector labels match pod labels; check endpoints with
kubectl get endpoints <svc>
Keywords
kubernetes, k8s, kubectl, deployment, pod, service, ingress, configmap, secret, container orchestration