Rust traits are great, but sometimes it's useful to erase compile-time trait parameters and associated types.
In this blog post, I'll show how to take a trait with type parameters, and build a container type that can contain multiple implementations with different type parameters and associated types.
In this post, I'll continue the process of setting up a Kubernetes cluster from my last post by setting up our own load balancer, ingress and certificate manager. This lets us easily deploy web services protected by HTTPS in our Kubernetes cluster.
In this post, I'll go through the process of setting up a Kubernetes cluster with one or more machines.
I'm using Alpine Linux to minimize the actual operating system, and try to allow for as much of the cluster as possible to be running inside of Kubernetes. For the Kubernetes cluster I'm using K3S, as that seemed to be a good out-of-the-box solution that supports both Alpine Linux and allows for clusters with multiple machines. And to connect the machines in the cluster together, I'm using ZeroTier, as that allows for the machines to discover and communicate to each other behind firewalls on different networks.
In this post I'll describe how I set up a virtual network between different servers.