kubernetes-skills/claude/k8s-autoscaling/SKILL.md
Configure Kubernetes autoscaling with HPA, VPA, and KEDA. Use for horizontal/vertical pod autoscaling, event-driven scaling, and capacity management.
npx skillsauth add rohitg00/kubectl-mcp-server k8s-autoscalingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive autoscaling using HPA, VPA, and KEDA with kubectl-mcp-server tools.
Use this skill when:
| Priority | Rule | Impact | Tools |
|----------|------|--------|-------|
| 1 | Verify metrics-server for HPA | CRITICAL | get_resource_metrics |
| 2 | Set resource requests before HPA | CRITICAL | describe_pod |
| 3 | Use KEDA for scale-to-zero | HIGH | keda_scaledobjects_list_tool |
| 4 | Check VPA recommendations | MEDIUM | get_resource_recommendations |
| Task | Tool | Example |
|------|------|---------|
| List KEDA ScaledObjects | keda_scaledobjects_list_tool | keda_scaledobjects_list_tool(namespace) |
| Get ScaledObject | keda_scaledobject_get_tool | keda_scaledobject_get_tool(name, namespace) |
| List ScaledJobs | keda_scaledjobs_list_tool | keda_scaledjobs_list_tool(namespace) |
| Check KEDA | keda_detect_tool | keda_detect_tool() |
Basic CPU-based scaling:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
Apply and verify:
kubectl_apply(hpa_yaml, namespace)
get_hpa(namespace)
Right-size resource requests:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: my-app-vpa
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
updatePolicy:
updateMode: "Auto"
keda_detect_tool()
keda_scaledobjects_list_tool(namespace)
keda_scaledobject_get_tool(name, namespace)
keda_scaledjobs_list_tool(namespace)
keda_triggerauths_list_tool(namespace)
keda_triggerauth_get_tool(name, namespace)
keda_hpa_list_tool(namespace)
See KEDA-TRIGGERS.md for trigger configurations.
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: sqs-scaler
spec:
scaleTargetRef:
name: queue-processor
minReplicaCount: 0
maxReplicaCount: 100
triggers:
- type: aws-sqs-queue
metadata:
queueURL: https://sqs.region.amazonaws.com/...
queueLength: "5"
triggers:
- type: cron
metadata:
timezone: America/New_York
start: 0 8 * * 1-5
end: 0 18 * * 1-5
desiredReplicas: "10"
triggers:
- type: prometheus
metadata:
serverAddress: http://prometheus:9090
metricName: http_requests_total
query: sum(rate(http_requests_total{app="myapp"}[2m]))
threshold: "100"
| Strategy | Tool | Use Case | |----------|------|----------| | CPU/Memory | HPA | Steady traffic patterns | | Custom metrics | HPA v2 | Business metrics | | Event-driven | KEDA | Queue processing, cron | | Vertical | VPA | Right-size requests | | Scale to zero | KEDA | Cost savings, idle workloads |
Reduce costs for idle workloads:
keda_scaledobjects_list_tool(namespace)
Get recommendations and apply:
get_resource_recommendations(namespace)
get_hpa(namespace)
get_pod_metrics(name, namespace)
describe_pod(name, namespace)
keda_scaledobject_get_tool(name, namespace)
get_events(namespace)
| Symptom | Check | Resolution | |---------|-------|------------| | HPA unknown | Metrics server | Install metrics-server | | KEDA no scale | Trigger auth | Check TriggerAuthentication | | VPA not updating | Update mode | Set updateMode: Auto | | Scale down slow | Stabilization | Adjust stabilizationWindowSeconds |
development
Manage vCluster (virtual Kubernetes clusters) instances using vind. Use when creating, managing, or operating lightweight virtual clusters for development, testing, or multi-tenancy.
development
Debug Kubernetes pods, nodes, and workloads. Use when pods are failing, containers crash, nodes are unhealthy, or users mention debugging, troubleshooting, or diagnosing Kubernetes issues.
devops
Kubernetes storage management for PVCs, storage classes, and persistent volumes. Use when provisioning storage, managing volumes, or troubleshooting storage issues.
testing
Manage Istio service mesh for traffic management, security, and observability. Use for traffic shifting, canary releases, mTLS, and service mesh troubleshooting.