The cloud observability problem
Managing and optimizing cloud resources is crucial to maximizing their effectiveness, and the right tools can make all the difference when trying to avoid vendor lock-in and tailoring solutions specifically to you. However, many cloud providers struggle to offer a unified and straightforward management platform that works across different cloud environments.
Komiser is an open-source cloud cost optimization tool that can help with this challenge. It provides insights into the costs associated with different regions, managed services, and individual resources, making it a valuable addition to any cloud environment. But not only that, Komiser's Kubernetes integration offers even greater visibility into the Kubernetes clusters running on compute instances, allowing users to create custom views that dynamically update to reflect the current state of their microservice resources.
With Komiser, you can easily gain a complete picture of your cloud cost and usage by leveraging one easy-to-use tool. Komiser offers cloud-agnostic transparency for cost and resource utilization, making it a valuable addition to any cloud environment, regardless of the cloud provider.
Why Kubernetes?
Kubernetes is the present and future of container orchestration. It's a platform that allows you to automate the deployment, scaling, and management of your containerized applications. With Kubernetes, you can build, test, and deploy your applications faster and more reliably. No more manual updates or tedious scripting, Kubernetes does it all for you.
The benefits of Kubernetes are numerous and undeniable. For starters, it increases efficiency and productivity. By automating tasks, developers can focus on writing code and building great products. Kubernetes also provides a level of consistency and reliability that's unparalleled. No more worrying about different environments causing bugs or crashes, Kubernetes ensures your application runs the same way, every time. And let's not forget about scalability. Kubernetes makes it easy to scale your applications up or down, on-demand. So, whether you're running a small blog or a massive enterprise application, Kubernetes has got you covered.
Kubernetes configuration
Komiser now integrates with Kubernetes and takes cloud management to the next level. With this integration, you can now view your Kubernetes objects in the Komiser dashboard, providing complete transparency into your cluster. This gives you the ability to bundle your objects (Deployments, Ingress, Pods, PersistentVolumes, PersistentVolumeClaims, ServiceAccounts, and Services) into custom views, alongside other cloud resources, making it easier to understand and manage your cloud spending. By having all of your resources in one place, you can make informed decisions about how to optimize your costs and ensure that your cluster is running as efficiently as possible. The integration of Komiser with Kubernetes streamlines cloud management and empowers organizations to effectively manage their cloud costs and resources.
Adding kubeconfig to the configuration file
In this example, I’ll be integrating Komiser with three EKS clusters I have deployed to my AWS account.
Easily integrate your Kubernetes clusters by adding a block to the config.toml file as follows:
Above we are integrating three separate Kubernetes accounts named “my-demo-cluster”, “my-demo-staging-cluster” and “my-demo-production-cluster”. Add the path to each individual kubeconfig file and you are all set.
At present, the sole means of cluster integration offered by Komiser's Kubernetes support (v1) is by directly inputting each individual kubeconfig containing the cluster credentials. In the future, we will add support for adding all clusters to the same kubeconfig file and you will be able to load the file once and subsequently choose the cluster profile in each configuration block.
You can locate your kubeconfig file at ~/.kube/config on your local machine.
View of my Kubernetes resources in the Komiser dashboard, which I saved in a Kubernetes resources custom view:
AWS Configuration
To take it a step further, we can update the configuration file to include the AWS account where the Kubernetes clusters we're tracking are located. This enables us to track and manage not only the Kubernetes objects but also the general AWS resources on which the clusters run.
By running this configuration, we can see that the resource inventory page now fetches additional AWS resources, providing us with a more complete picture of our cloud environment. With this enhanced visibility, we can create even more comprehensive custom views and gain greater transparency into our cloud resources.
Resource inventory view
Self-hosting Komiser in a Kubernetes cluster
If you want to self-host Komiser in a Kubernetes cluster, you can use the official Komiser Helm chart to deploy it to any type of Kubernetes cluster. Although the documentation focuses on deploying to an AWS EKS cluster, you can use it to deploy to any other Kubernetes cluster as well.
Tutorial Video
Regardless if you are a Developer, DevOps, or Cloud engineer. Dealing with the cloud can be tough at times, especially on your own. If you are using Tailwarden or Komiser and want to share your thoughts doubts and insights with other cloud practitioners feel free to join our Tailwarden discord server. Where you will find tips, community calls, and much more.
Top comments (0)