In the same vein as the rest of my posts in the Container Networking series, I want to learn how Calico sets up pod routes between Kubernetes nodes.
If you log into a Kubernetes node using Calico and run ip route you’ll see something similar to:
Previously, I discussed how to Spin up a Ubuntu VM using Pulumi and libvirt. By the end, we had a fully working VM that we could SSH into with provided credentials for the Ubuntu user. But how could we begin to make this usable by others?
Pulumi is an Infrastructure as Code (IaC) tool that supports using Go, .Net, Python, and TypeScript/JavaScript. Libvirt is a tool for managing virtual machines (VM). Typically, teams use Pulumi with different cloud providers, but we can leverage libvirt to manage virtual machines on bare-metal servers, perfect for a homelab.
One of Kubernetes many features is auto-scaling workloads. Typically, Horizontal Pod Autoscalers scale pods based on CPU or memory usage. During other times we could better scale by using custom metrics that Prometheus is already scraping.
Fortunately, Horizontal Pod Autoscalers can support using custom metrics.
The Carvel Suite is a set of composable tools to help deploy applications to Kubernetes. While other solutions try to solve all problems in one package, Carvel provides tools and leaves it up to you to glue the components together. This enables a lot of flexibility!