As a DevOps engineer, I’ve always found it crucial to have a home lab to experiment, learn, and keep up with new technologies. Recently, I decided to set up my own homelab to run Kubernetes clusters. I had two primary requirements: keeping power consumption low and building redundancy with at least 3 nodes. My budget was around $1000-1300, and I considered both ARM64 and AMD64 processor-based systems.
In this post, I’ll walk you through the hardware options I explored, compare the two architectures, and explain why you might choose one over the other depending on your use case.
what is it? ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It allows you to manage the state of your applications using Git as the source of truth. This means that any changes made to your application configuration in Git are automatically applied to your Kubernetes cluster by ArgoCD.
Key Features of ArgoCD: Declarative GitOps: Define the desired state of your applications in Git, and ArgoCD ensures that your Kubernetes cluster matches this state.
what is it? ytt is a YAML templating tool that helps you customize and generate YAML files dynamically. It provides a more powerful and expressive way to work with YAML than standard templating tools like Helm templates. With ytt, you can leverage data values, conditional logic, loops, and more to create modular and reusable YAML configurations.
Why Use ytt? Here’s why ytt might be the right tool for your next project:
what is it? The core of Kubernetes’ control plane is the API server. The API server exposes an HTTP API that lets end users, different parts of your cluster, and external components communicate with one another.
The Kubernetes API lets you query and manipulate the state of API objects in Kubernetes (for example: Pods, Namespaces, ConfigMaps, and Events).
Most operations can be performed through the kubectl command-line interface or other command-line tools, such as kubeadm, which in turn use the API.