-
terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
I decided to use Terraform to manage my K8 resources. I know that there are probably better ways of doing this (like Argo CD or Flux CD), but I ended up settling with Terraform as I was already familiar with the tool and it allowed me to achieve the goal of trying out K8s without being bogged down too much on the deployment process.
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
Another unfamiliarity and challenge for me was K8s ingress. I decided to use Traefik as a Helm Chart as my ingress controller. I think it was a challenge for me because both technologies were unfamiliar, setting it up and trying to make sense of an overwhelming amount of configuration was a bit of a stab in the dark. One major snag for me was the idea that a “LoadBalancer” service in K8s is provisioned and managed by the cloud provider hosting the cluster and doesn’t work right out of the box on a MicroK8 cluster (It did work out of the box on docker desktop, which made it real confusing). I ended up setting up Traefik as a “NodePort” service and hacking the cluster config to allow it to be open on ports 80 and 443 here. Again if I had used K8s as a multi-node orchestrator with a cloud provider like the way it was designed to be used, maybe I wouldn’t have faced so many challenges.
-
Inside each namespace, there are K8 services pointing to self hosted tools (at this point, I’ve only got NocoDB setup). Each namespace also has a Postgres database. The database is hostpath storage mounted since I am only using single node clusters and also didn’t have time to look too much into “Stateful Sets” and how to correctly host a database within a K8 cluster.
-
Whilst the production namespace ran on the production VPS server running a MicroK8 single node cluster, the other 2 namespaces ran on my laptop using the K8 engine which comes with docker desktop.
-
Recently, I’ve spent some time playing around with Kubernetes (K8s). Having never used it before, I gave it my humble first try. I used it as part of a project where I wanted to use self host some tools on a VPS and write some server code for some life automations and potentially a blog in the future. You can find the Github Repo for the project at the time of writing for it here.
-
I decided to use Terraform to manage my K8 resources. I know that there are probably better ways of doing this (like Argo CD or Flux CD), but I ended up settling with Terraform as I was already familiar with the tool and it allowed me to achieve the goal of trying out K8s without being bogged down too much on the deployment process.