Last modified March 28, 2023
Cost optimization tools
Adoption of Kubernetes still requires monitoring cost drivers. Improving resource utilization allows you to get the most out of your infrastructure, while maintaining your budget. This document is comprised of a curated list of helpful tools on the journey to cost optimization. The list is based on our experience building and running our own infrastructure, in addition to learnings we gained from working with large global enterprise.
Visualization and Optimization
- Kubecost, an open source cost visualization tool, with a kubectl plugin included. Requires a daemon to be running in the cluster.
- Cloud Provider tooling:
- Kube-capacity, a simple kubectl plugin that helps with visualize usage across nodes
- Prometheus + Grafana + exporters
- Goldilocks, a tool for refine and discover the right application resource settings
- There are multiple paid solutions offering dashboard-oriented services to track Kubernetes application costs or help to reduce cloud costs. For example:
- Zesty Real time controller that measures machine resource usage and adapt Reserved Instances using the AWS Marketplace.
- Cloudability
- Kubernetes Opex Analytics
- CloudHealth
Autoscaling
- Cluster Autoscaler scales up, based on unscheduled pods, and down nodes when certain threshold is reached
- Horizontal Pod Autoscaler scale out/in the replicas of you application based on metrics defined
- Vertical Pod Autoscaler evaluate and modify current application resource based on usage
- Custom Metrics Adapter makes possible to scale your application based on a new different set of metrics
Dev/Test clusters
- Janitor, a tool that leverages on resource annotations to clean and set TTL for your deployments, find out unused volumes,…
- Kubernetes Downscaler scales down deployments on your non production cluster based on some conditions
- Cluster cleaner automatically removes workload clusters after a defined amount of time.
Summary
Cost optimization is a journey. You will find you need to adopt different tools and continually tweak your setup to get the greatest benefit from cloud native.
Need help, got feedback?
We listen to your Slack support channel. You can also reach us at support@giantswarm.io. And of course, we welcome your pull requests!