terminalskills/skills

k8s-cost-optimizer

>- Analyzes Kubernetes cluster resource allocation versus actual usage to find waste and generate right-sizing recommendations. Use when someone asks about Kubernetes costs, overprovisioned pods, resource requests/limits tuning, cluster efficiency, or cloud bill reduction for K8s workloads. Trigger words: k8s costs, pod resources, right-size, overprovisioned, resource waste, cluster optimization, CPU/memory requests.

First seen Apr 11, 2026

Installation

$ npx skills add terminalskills/skills --skill k8s-cost-optimizer

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from terminalskills/skills · top by installs.

npx skills add terminalskills/skills

Browse all from terminalskills/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 146
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseApache-2.0
CompatibilityRequires kubectl access to target cluster and metrics-server installed
More metadata
author
terminal-skills
version
1.0.0
category
devops
tags
["kubernetes","cost-optimization","resource-management","finops"]

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,646 B
  • docs SUMMARY.md 443 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 5 installs

SKILL.md

Kubernetes Cost Optimizer

Overview

This skill audits Kubernetes clusters for resource inefficiency by comparing requested CPU/memory against actual usage from metrics-server. It identifies zombie deployments, overprovisioned workloads, and generates kustomize-compatible patches for right-sizing with safety buffers.

Instructions

Step 1: Verify Cluster Access and Metrics Availability

Run kubectl cluster-info and kubectl top nodes to confirm connectivity and that metrics-server is running. If metrics-server is unavailable, inform the user and suggest installing it first.

Step 2: Collect Resource Data

For each namespace (or user-specified namespaces):

# Get resource requests/limits for all pods
kubectl get pods --all-namespaces -o json | jq '[.items[] | {
  namespace: .metadata.namespace,
  pod: .metadata.name,
  containers: [.spec.containers[] | {
    name: .name,
    cpu_request: .resources.requests.cpu,
    cpu_limit: .resources.limits.cpu,
    mem_request: .resources.requests.memory,
    mem_limit: .resources.limits.memory
  }]
}]'

# Get actual usage
kubectl top pods --all-namespaces --no-headers

Step 3: Calculate Efficiency Ratios

For each deployment, compute:

  • Efficiency = actual_usage / requested × 100
  • Waste = 100 - efficiency
  • Monthly cost estimate = (requestedcpu × nodecostpercpu) + (requestedmem × nodecostpergi)

Use these reference prices if the user doesn't specify:

  • On-demand: ~$0.0425/vCPU-hour, ~$0.0057/GiB-hour (AWS us-east-1 m5 family)
  • Convert to monthly: multiply hourly by 730

Step 4: Identify Zombie Workloads

Flag deployments where:

  • CPU usage is < 1m (1 millicore) for 7+ days
  • Pod restart count is 0 and replicas are running
  • Namespace matches staging/dev/preview patterns

Step 5: Generate Right-Sizing Recommendations

For each overprovisioned workload:

  1. Take the p99 usage over available history (ideally 14 days)
  2. Add a configurable headroom buffer (default: 30%)
  3. Set requests = p99 + buffer, limits = requests × 1.5
  4. Output as kustomize patches or plain YAML diffs

Step 6: Produce Summary Report

Format a table showing:

  • Top waste offenders sorted by estimated monthly savings
  • Total cluster waste percentage
  • Projected annual savings
  • Risk assessment (low/medium/high) for each recommendation

Examples

Example 1: Namespace Audit

User prompt:

Audit the api-services namespace for resource waste

Agent output:

Resource Audit: api-services namespace
───────────────────────────────────────

Deployment          Replicas  CPU Req→Used   Mem Req→Used    Efficiency  Est. Waste
user-auth           3         500m→120m      1Gi→340Mi       26%         $85/mo
order-processor     2         1000m→650m     2Gi→1.4Gi       68%         $31/mo
email-worker        2         250m→15m       512Mi→80Mi      8%          $42/mo

Recommendations:
1. email-worker: Reduce to 1 replica, set requests to cpu:50m/mem:150Mi → saves $42/mo
2. user-auth: Set requests to cpu:180m/mem:500Mi → saves $68/mo
3. order-processor: Requests are reasonable, minor trim to cpu:850m → saves $12/mo

Total potential savings: $122/month ($1,464/year)

Example 2: Zombie Detection

User prompt:

Find unused deployments across all namespaces

Agent output:

Zombie Workloads Detected
─────────────────────────

Namespace: staging
  ✗ feature-auth-v2      2 replicas  CPU: 0m  Last deploy: 2025-09-14  → $28/mo wasted
  ✗ hotfix-payment-flow   1 replica   CPU: 0m  Last deploy: 2025-10-02  → $14/mo wasted
  ✗ demo-dashboard        3 replicas  CPU: 0m  Last deploy: 2025-07-28  → $42/mo wasted

Namespace: dev
  ✗ test-migration        1 replica   CPU: 0m  Last deploy: 2025-11-18  → $14/mo wasted

Suggested cleanup:
  kubectl delete deployment feature-auth-v2 hotfix-payment-flow demo-dashboard -n staging
  kubectl delete deployment test-migration -n dev

Total zombie cost: $98/month

Guidelines

  • Never auto-apply changes — always present recommendations for human review
  • Safety buffer is critical — default 30% headroom prevents OOMKills after right-sizing
  • Prioritize by savings — show the biggest wins first so users focus effort where it matters
  • Account for traffic patterns — warn if usage data covers less than 7 days or misses peak periods
  • Consider HPA — if a deployment has a HorizontalPodAutoscaler, note that right-sizing requests affects scaling thresholds
  • Staging vs production — be more aggressive with staging recommendations, more conservative with production
  • Cost estimates are approximate — note the instance type assumptions and suggest the user verify with their actual pricing