Serdar Yegulalp
Senior Writer

13 tools that make Kubernetes better

feature
Mar 16, 20227 mins

Take advantage of these Kubernetes companions to simplify app definitions, migrate clusters, ease cloud deployments, and more.

red buoys floating in the ocean unique life preservers safety risk float
Credit: Just_Human / Getty Images

Few computing platformsโ€”even those of great power and scaleโ€”satisfy every need out of the box. While Kubernetes is useful out of the box, itโ€™s far from complete. You can always find a use case or a need where the default Kubernetes feature set falls short, such as database support, or simply ignores, such as continuous delivery.

Thatโ€™s where the broader Kubernetes community comes in, with add-ons, extensions, and bonus goodies for the container orchestration framework. Here are 11 of the top Kubernetes companions weโ€™ve found. Some will complement any Kubernetes cluster, while others address specific needs that stock Kubernetes doesnโ€™t address.

Clusterpedia: Manage resources for multiple Kubernetes clusters

Finding and managing resources in a single Kubernetes cluster is (mostly) a solved problem. But what about dealing with resources across multiple clusters? Clusterpedia allows you to search for resources in a group of Kubernetes clusters and synchronize different versions of resources across those clusters as needed. Synchronization can be paused or resumed either manually or automatically based on the clusterโ€™s health. Clusterpedia doesnโ€™t manage network connectivity between clusters, however; the documentation recommends using a tool like Submariner for that.

Gatekeeper: Kubernetes policy controls

The Open Policy Agent projectย (OPA) provides a way to create policies across cloud-native application stacks, from ingress to service-mesh components to Kubernetes. Gatekeeperย provides a Kubernetes-native way to enforce OPA policies on a cluster automatically, and to audit for any events or resources violating policy. All this is handled by a relatively new mechanism in Kubernetes, admission controller Webhooks, that fire on changes to resources. With Gatekeeper, OPA policies can be maintained as just another part of your Kubernetes clusterโ€™s defined state, without needing constant babysitting.ย 

Helmify: Export Kubernetes YAML files to Helm charts

Helm charts make it easy to take someone elseโ€™s definition for a Kubernetes resource or application deployment and use it to deploy that resource or application yourself. But what if you want to take your own Kubernetes YAML definitions and translate them into Helm charts for someone else to use?

Helmify generates Helm charts from common Kubernetes definition objectsโ€”a YAML file, a directory of YAML files, or output from Kustomize. Helmify can also be integrated into Kubebuilder to make charts for operators generated by that tool. Examples, including input and output, are included with the projectโ€™s repo.

Kaniko: Build containers in a Kubernetes cluster

Most container images are built on a system outside of a container stack. Sometimes, though, you want to perform the build processย insideย a container stackโ€”e.g., within a running container or somewhere on a Kubernetes cluster.

Kanikoย performs container builds inside a container environment, but without relying on a container daemon like Docker to do the work. Instead, Kaniko extracts the file system from the base image, then executes all of the build commands in user space atop the extracted file system, taking a snapshot of the file system after each command.

Note that Kaniko currently cannot build Windows containers.

Kubecost: Cost metrics for running Kubernetes

Most Kubernetes administration tools focus on ease of use, monitoring, insight into pod behaviors, and the like. But what about monitoring the costsโ€”as in the dollars and centsโ€”associated with running Kubernetes?

Kubecostย uses real-time Kubernetes metrics, and real-world cost information derived from running clusters on the major cloud providers, to provide a dashboard view of the monthly cost of each cluster deployment. Costs for memory, CPU, GPU, and storage are all broken out by Kubernetes component (container, pod, service, deployment, etc.).

Kubecost can also track the costs of โ€œout of clusterโ€ resources, such as Amazon S3 buckets, although this is currently limited to AWS. Cost data can even be shared back to Prometheus, so you can use the data to programmatically alter cluster behavior.

Kubecost is free to use if you only need to keep 15 days of logs. For more advanced features, pricing starts at $199 per month for monitoring 50 nodes.

KubeDB: Run production databases in Kubernetes

Databases have always been difficult to run elegantly in Kubernetes. Youโ€™ll find Kubernetes operators for the likes of MySQL, PostgreSQL, MongoDB, and Redis, but there are plenty of gaps. And the native Kubernetes feature set doesnโ€™t directly address many of the specific problems with databases.

KubeDBย allows you to create your own Kubernetes operators for managing databases. Running backups, cloning, monitoring, snapshotting, and declaratively creating databases are all part of the mix. Note that supported features vary among databases. For instance, clustering is available for PostgreSQL but not MySQL.ย 

Kube-monkey: Chaos monkey for Kubernetes

One surefire way to stress test a system is to break stuff at random. Thatโ€™s the theory behind Netflixโ€™sย Chaos Monkey,ย a chaos engineering tool that randomly terminates virtual machines and containers running in production to โ€œencourageโ€ developers to build more resilient systems. Kube-monkey is an implementation of the same basic idea for stress-testing Kubernetes clusters. It works by randomly killing pods in a cluster that you specifically designate, and can be fine-tuned to operate within specific time windows.

Kubernetes Ingress Controller for AWS

Kubernetes provides external load balancing and network services to a cluster through a service called Ingress. Amazon Web Services provides load balancing functionality, but doesnโ€™t automatically couple these services to Kubernetesโ€™ facilities for same. The Kubernetes Ingress Controller for AWS closes that gap.

The Kubernetes Ingress Controller for AWS manages AWS resources for each ingress object in a cluster automatically, creating load balancers for new ingress resources and deleting load balancers for removed ones. It uses AWS CloudFormation to ensure that cluster state remains consistent. It also supports CloudWatch Alarm configurations and auto-manages other elements used in the cluster like SSL certificates and EC2 Auto Scaling Groups.

Kubespray: Automated deployment for Kubernetes

Kubespray automates the deployment of a production-ready Kubernetes cluster in most any environment, from bare metal to the major public clouds. It uses Ansible (optionally Vagrant) to perform the deployment, and creates a highly available cluster with your choice of network plug-in (e.g. Flannel, Calico, Weave, etc.) and your choice among many popular Linux distributions for bare-metal installs.

Kwatch: State change reporting for Kubernetes

When a Kubernetes cluster turns south, you want to know asap. Kwatch detects all changes in cluster state (including application crashes) and publishes the results to popular communication services in real time: Slack, Discord, Microsoft Teams, PagerDuty, Telegram, Mattermost, Opsgenie. Most any communications service that has an API or webhook can be added, too.

Skaffold: Iterative development for Kubernetes

Skaffoldย is one of Googleโ€™s own tools for Kubernetes, a way to perform continuous deployment for Kubernetes apps. When you make changes to your source code, Skaffold automatically detects them, triggers the build and deploy process, and warns you if any errors surface. Skaffold runs entirely on the client side, so there is little setup or maintenance burden. It can be used in an existing CI/CD pipeline, and integrates with a few external build tools, chiefly Googleโ€™s own Bazel.

Teresa: A simple PaaS on Kubernetes

Teresa is an application deployment system that runs as a simple PaaS on Kubernetes. Users, organized into teams, can deploy and manage applications that belong to them. This makes it a little easier for people who are trusted with a given application to work with it, without having to deal with Kubernetes and all of its complexities.

Tilt: Stream container updates to Kubernetes clusters

Developed by Windmill Engineering,ย Tiltย monitors changes to Dockerfiles, then deploys those changes incrementally to the appropriate containers in a Kubernetes cluster. In essence, Tilt allows developers to update a live cluster in real time merely by updating a Dockerfile. Tilt performs the build inside the cluster; the only changes pushed are source code. You can even snapshot cluster state and error conditions from a Tilt state to share with team members for debugging.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author