For years, Kubernetes has reigned over the container orchestration landscape with an iron fist, and for good reason. In addition to its auto-scaling, load-balancing, and automation provisions, this open-source platform pairs well with several container runtime environments.
Not to mention, Kubernetes is compatible with a host of third-party tools, including monitoring, automation, and logging utilities. While we're on the subject, here's a quick list of tools you can integrate into your K8s environment to enhance your container management workflow.
I built a Kubernetes cluster with my Raspberry Pi's - here's how you can, too
A robust container orchestration server - built with a bunch of Raspberry Pi's and boundless patience
7 Kompose
For the Docker lovers out there
If you’ve been following my self-hosting guides here on XDA, you may already be familiar with Docker Compose. For the uninitiated, it’s a plugin that simplifies container creation by letting you define container parameters inside a YAML config file, which you can then execute with a single command to get your containerized environments up and running.
Unfortunately, the normal YAML syntax of Docker Compose files needs a lot of tweaking before you can integrate it with your K8s cluster. But with Kompose, you can convert your favorite Docker Compose files into their equivalent Kubernetes YAML configs.
6 GitLab
This one’s only for hardcore developers
Continuous Integration/Continuous Delivery tools are extremely useful when you want to automatically build, test, and deploy applications from repositories and registries. If you’ve got a Kubernetes cluster, GitLab is an amazing tool that lets you incorporate CI/CD pipelines into your containerization workflows.
In addition to letting you roll back broken code updates, GitLab can also perform vulnerability analysis on dependencies to add an extra layer of security to your Kubernetes apps.
5 K9s
An intuitive interface for your K8s cluster
Executing kubectl commands inside a CLI interface may be the most reliable method to manage your Kubernetes environment, but it’s far from easy when you’re just starting out with K8s. That’s where K9s’ text-based UI comes in handy, as it provides a more interactive alternative to the default kubectl utility while sprinkling in some quality-of-life facilities.
It also supports custom resource definitions and has a customizable interface. And you can arm your K9s with plugins to further boost its utility.
4 Terraform
Auto-deploy pods like a pro
Creating new pods and containers can be a hassle without automation tools. Thankfully, Terraform includes a K8s provider to help you automate the more tedious aspects of Kubernetes.
For example, you can configure Terraform to automatically provision pods inside your Kubernetes environment every time there’s a spike in the demand for containers. For a more fault-tolerant setup, Terraform can spin up entire K8s clusters inside local hardware (and even cloud environments) when your current Kubernetes environment can’t deal with increased workloads.
3 Loki
Make troubleshooting a breeze
Containers, just like every aspect of your home lab, can go offline when you least expect them to. While Kubernetes has some built-in logging provisions, Loki remains my favorite utility for keeping tabs on my container logs.
Besides letting you tail logs for your pods, Loki has minimal resource overhead. Plus, it pairs well with Prometheus, making it a great addition to your monitoring and logging stack. Speaking of…
2 Prometheus
Especially once you pair it with Grafana
While you could outfit your Kubernetes server with a variety of monitoring tools, Prometheus leaves its brethren in the dust with its metrics-capturing facilities. Once you deploy a Prometheus instance, it starts capturing the essential statistics of your K8s containers and pods.
Compatible with PromQL, Prometheus lets you run queries to extract useful information and patterns from the recorded data values. You’ve also got an expression browser capable of rendering the time-varying data as graphs, and you can even combine Prometheus with a self-hosted Grafana server to create beautiful dashboards with the container and pod metrics.
1 Helm
The best package manager for K8s users
If you’re not fond of dabbling in complex YAML/JSON syntax just to deploy a container or two, you’ll love Helm as much as I do. Similar to apt, yum, nix, and other package managers, Helm lets you install and update applications on your Kubernetes cluster.
Helm is compatible with a host of different tools – including several utilities on this list – and you can add custom templates (called Helm Charts) spanning all your favorite services.
Which K8s tools are indispensable for your setup?
Aside from these, Kubernetes is compatible with other neat utilities that deserve a mention. If your workloads involve several K8s environments, Rancher offers a solid UI to help you manage them. Then there’s Veeam Kasten, an enterprise-grade backup tool for your K8s containers and pods. For folks who require a custom registry capable of scanning images and adding RBAC locks, you’ll want to check out Harbor.
Should you use Kubernetes in your home lab?
If you like tinkering with containers or want some invaluable learning experience, Kubernetes will be a worthy addition to your experimentation server
