Proxmox

5 Proxmox Kubernetes Configurations You Need to Know

Learn about 5 different Proxmox Kubernetes configurationsv for running Kubernetes in Proxmox and the pros and cons of each for K8s

With many moving to Proxmox in their home lab or even production environments, you may be interested in your options for running Kubernetes. How does this work with Proxmox? Well, there are several ways you can configure your deployment of Kubernetes running in Proxmox. Let’s take a look at Proxmox Kubernetes configurations you need to know and see the architecture of each.

Proxmox is a great platform for K8s

Since so many are looking at Proxmox as their hypervisor of choice, those who want to experiment or run Kubernetes also want to take a look at the best methods to run Kubernetes in Proxmox. There are a number of ways that you can do this.

You have a lot of options with Proxmox since it has the built-in LXC container functionality in the platform and you can also take the traditional virtual machine route as well, along with running Kubernetes using K3D if you want in containers. So, lots of methods. I encourage you to try out each of the various configurations and see which

Proxmox Kubernetes configurations

We will consider the following Proxmox Kubernetes configurations that provide great options for home lab or production environments:

  1. Traditional Kubernetes virtual machine nodes
  2. Talos Linux Kubernetes
  3. Kubernetes in LXC containers
  4. K3D
  5. Run on Proxmox bare metal

1. Traditional Kubernetes virtual machine nodes

This is the most basic type of deployment where you simply spin up 3 traditional Linux virtual machines and run your choice of Kubernetes distro inside the virtual machines. My choice lately for doing this is running Ubuntu Server virtual machines with Microk8s installed.

Microk8s is a production-ready Kubernetes distribution that is easy to install and administer due to the fact that all the commands are baked into the snap package and you can easily enable or disable components in your Microk8s cluster.

Running proxmox kubernetes in virtual machines
Running proxmox kubernetes in virtual machines

Microk8s also works very well with Microceph and integrates your Kubernetes storage management with Microceph using the rook-ceph components for Microk8s.

You can take a look at my blog post here to see an example of a configuration you can use for your Proxmox hosts running Ubuntu virtual machines, Microk8s, Microceph, etc:

Pros

  • Very easy and traditional way to configure K8s
  • Backups of your Kubernetes nodes are easy since they are traditional VMs

Cons

  • Takes more resources
  • Management of virtual machine lifecycle, updates, etc

2. Talos Linux Kubernetes

There is another Kubernetes option that is massively gaining popularity and that is Talos Linux Kubernetes. Talos Linux is a very streamlined distribution that is very security focused. You can’t SSH into your Talos Linux hosts and everything is API-driven.

Running proxmox kubernetes in talos linux
Running proxmox kubernetes in talos linux

Talos Linux Kubernetes has a bootstrapping process to get up and running where you deploy the VMs and then bootstrap the cluster and bring it online. If you want to know more details on how to set this up in Proxmox, read my detailed blog post here on how to install Proxmox Kubernetes with Talos Linux.

Also, I have written a detailed blog post showing how to spin up Kubernetes using Talos on Proxmox and the steps involved with that process:

Pros

  • Very secure
  • API-driven
  • No SSH access

Cons

  • Steeper learning curve
  • May have challenges compared to other Kubernetes distributions

3. Kubernetes in LXC containers

There is another great option, especially for home labs to run Kubernetes in Proxmox, especially for home lab environments. Proxmox natively supports LXC containers. We can spin these up easily in Proxmox in the web GUI or from the command line. LXC containers bridge the gap between a full-blown virtual machine and a Docker container. It fits somewhere in between.

Running proxmox kubernetes in lxc containers
Running proxmox kubernetes in lxc containers

It is a more operating system-like container than Docker which is more application-centric. These are still much more lightweight than a full VM and you can run Kubernetes inside of your LXC containers. This provides a very lightweight and streamlined environment where you can run Kubernetes.

Take a look at my blog post covering this topic on how to spin up a Kubernetes cluster in LXC containers which is super easy and lightweight:

Pros

  • Very lightweight
  • Easy for lab environments

Cons

  • May not be the best for production environments
  • Can have limitations

4. K3D

Another option to run Proxmox Kubernetes clusters is using the K3D project. What is K3D? K3D is a utility that serves as a lightweight tool that lets you run your K3s Kubernetes environment inside Docker containers.

Running proxmox kubernetes in k3d
Running proxmox kubernetes in k3d

You can spin up either a single node cluster or multi-node cluster using the K3s distribution inside Docker. This is a great option for home labs that provides a very lightweight way to run your Kubernetes clusters, especially for labbing and learning scenarios. There are also a lot of community scripts out there that use K3D to automate spinning up a Kubernetes cluster.

It is free and open-source and is not an official Rancher solution. You can learn more about K3D from the official site here: k3d.

Check out my blog post showing how to run K3D in Ubuntu to spin up a Kubernetes cluster:

Pros

  • Easy to spin up
  • Great for lab environments
  • Lightweight

Cons

  • Probably not the best for production
  • Steeper learning curve

5. Run on Proxmox bare metal

This is an option I think if you want to run your Kubernetes cluster on bare metal and have a dual purpose setup where you also want to run VMs and containers. Since Proxmox is based on Debian, you can simply treat your Proxmox host like a Kubernetes bare metal node and install your Kubernetes distro directly on the hosts.

I think this is the least desirable of the 5 configurations though as using virtualization technologies as the underpinning for your Kubernetes cluster opens up so many additional possibilities, IMHO. However, just know this is a thing and an option if you want to try it out.

Pros

  • You have the performance and performance of bare metal
  • You have the platform host ready to go by default
  • Ok for lab environments

Cons

  • Not for production
  • Mixes your physical host environment with your virtualization host

Wrapping up

Hopefully this blog post gives you a few ideas of Proxmox Kubernetes configurations you can try in your home lab or even production environment to find the best solution that fits your needs. Each method has its own pros and cons, so keep this in mind when choosing. Above all, make full use of a lab environment before going into production. This helps to flesh out any issues or limitations with a specific configuration before these are found in production.

Subscribe to VirtualizationHowto via Email ๐Ÿ””

Enter your email address to subscribe to this blog and receive notifications of new posts by email.



Brandon Lee

Brandon Lee is the Senior Writer, Engineer and owner at Virtualizationhowto.com, and a 7-time VMware vExpert, with over two decades of experience in Information Technology. Having worked for numerous Fortune 500 companies as well as in various industries, He has extensive experience in various IT segments and is a strong advocate for open source technologies. Brandon holds many industry certifications, loves the outdoors and spending time with family. Also, he goes through the effort of testing and troubleshooting issues, so you don't have to.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.