One of the things I’ve been working a lot with the latest 6 months are projects related to cloud-native and delivered Container-based workloads.
One of the things I find fascinating about this is the surrounding cloud-native ecosystem.
As a kid, I (was one of the few…) that subscribed to computer magazines, and one of the things I always liked was the CDs that I got in the mail containing all these cool and free pieces of software.
And right now, I have the same feeling related to the cloud-native ecosystem. While of course the use of software or services should be related to your actual needs in a project.
However, I still wanted to write this blog post to showcase some of the great tools and pieces of software in a Kubernetes-based environment.
1: Lens IDE
Lens IDE is a UI software that connects to the Kubernetes Cluster based on what is stored in the kubeconfig file. A much easier way to interact with a cluster than having to remember X thousands of kubectl commands.
You can also easily interact with services/pods to edit the configuration or port forwarding of services
It also has a built-in terminal and editor.
It also has Helm integration, to allow easy installation of helm charts directly from the UI.
For me, it has been extremely useful when you have a large set of CRDs and need to make some changes that are implemented in the cluster.
2: KubeApps
KubeApps is a simple self-service portal that allows users to install Helm Charts directly from a Web UI. It can also be used to provide namespace-based self-service and see preinstalled helm charts as well.
Nothing more advanced then that I’m afraid. You can also create your own namespaces as part of the web UI.
3: Kubestr
Kubestr is an tool that is used to validate CSI drivers and performance benchmarks. It runs as an executable from a machine that has access to the Kubernetes API. Then you just define which test you want it to try (NOTE: It needs to be CSI drivers)
Then you just define the storageclass that you want it to test it against. In my example I’m using the storageclass azurefile-csi-premium which will provision a PVC volume on an azure file share and do a benchmark test against it.
After the test is done, it will list out the results in terms of bandwidth and IOPS.
You can download it from here –> kastenhq/kubestr (github.com)
4: Kasten
Kasten is a backup tool from Veeam. Which I’ve written more about here –> Veeam Kasten and Azure Arc Data Services Backup | Marius Sandbu (msandbu.org) useful for taking backup of persistent volumes.
5: Kubecost
Kubecost is a tool to monitor and manage cost and capacity in Cloud-based Kubernetes environments, such as AWS, GCP, and Microsoft Azure.
If you have large Kubernetes environments, it becomes a bit difficult to understand what services that are taking resources and what kind of measures you can take to reduce and optimize the cost of the cluster
This tool is collecting the pricing information from each cloud providers price API, hence it is always showing the actual cost of each of the services.
6: KubeBench
KubeBench is an awesome tool for cluster management
That provides good insight into the API calls, Cluster status and node status
I can also adjust standalone deployments or scale them up and down directly from the UI
It also does built-in health checks of the cluster and the nodes
7: K9s
Do you like Lens but you live and die by the Terminal? Well, then K9s is the tool for you! It is essentially top made for Kubernetes environments. Providing a simple CLI based interface to interact with the cluster and workloads.
8: Loft
Loft is a control plane to allow for self-service on top of Kubernetes. Providing multi-tenancy and proper access control to different services. While it is not completly free for larger organization, they do have a free option.
What is cool is for instance that I can add a sample application which is utilizing other CRD in the cluster such as the Azure Operator to allow developers to provision Azure reources as part of the deployment
I can also create templates for spaces (namespaces) to with predefined applications, this can for instance be landing zones for services containing certain services.
So these are just some of the initial tools that I wanted to write a bit about. There is however a wast ecosystem out there which allows you to easily extend the capabilities of Kubernetes to also provide multi-cloud management and self-service capabilities.
For instance, there are multiple operators that can be used as well to extend the capabilities of self-hosted services such as CMS, databases, security features, or others. So, looking forward to providing part two of this series of other tools in this ecosystem.