Proxmox? Proxmox is awesome! Proxmox is the perfect hosting platform for all your VMs! Proxmox lets you easily build and break down full virtual machines and containers. They sell it better themselves. From the proxmox.com website:
Proxmox Virtual Environment is a complete open-source platform for enterprise virtualization. With the built-in web interface you can easily manage VMs and containers, software-defined storage and networking, high-availability clustering, and multiple out-of-the-box tools using a single solution.
I’ve been using Proxmox to host a couple of VMs in my home on my old LINUX servers. Home Assistant, Paperless-ngx, my recipe database, pi-hole, salt, Zabbix, Minecraft, Transmission, this website, etc. It’s rock solid, offers High Availability, it’s fast, and it’s free! If one of the servers crashes, Proxmox takes over and starts serving the application from another node! I haven’t lost Pihole since I made it a HA service! Thanks, Proxmox!
So, I got wondering: maybe I could quit fighting with Kubernetes and find and easier way to run my Raspberry Pi 4 cluster. Someone ported Proxmox to the ARM architecture! I found this project out on Git Hub. Looks like it’s worth a shot! Let’s take a look at installing Proxmox on a couple of Raspberry Pi 4’s! For the sake of this guide, I’m running as root. Login to the Pis and
sudo su -
It’s risky, but it saves a lot of typing. Just remember the power at your fingertips and
once you’re done with the install. Everything on this page needs to be done as root.
Firstly, set up 3 Raspberry Pis with a fresh copy of Raspbian Bookworm, the latest release. I was using some old 8GB thumb drives for this project and the installation took about 3 hours! I went to Amazon and found these 32GB Sandisk thumb drives. The install time is now about 20 minutes! In fact, I got 2 three-packs because I wanted to try introducing “ceph” to my little HA cluster, but more on that later…
Once you have Bookworm installed on all 3 Pis, configure them to use a consecutive range of IP numbers. Not a requirement, but just convenient during setup/troubleshooting. Here’s the host file from one of the Raspberries:
192.168.1.26 pimox1 192.168.1.27 pimox2 192.168.1.28 pimox3
Edit your host files (/etc/hosts) to contain just your 3 Pis and their IP addresses before you go any further. Remove everything else from the files. I also added these IP addresses to dns, so I can browse to them by name but it’s still important to add them to your /etc/hosts file because once we cluster them, they’ll be really chatty.
Next, we’ll need to add the Proxmox port repo. You can use the following commands.
First, add the gpg key for the repo:
curl https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg
Create the pveport.list file and populate with mirror info:
echo "deb [arch=arm64] https://global.mirrors.apqa.cn/proxmox/debian/pve bookworm port">/etc/apt/sources.list.d/pveport.list
Then you’ll need to update the repo cache. Let’s run an upgrade, too, just to make sure Bookworm is up to date:
apt update apt -y upgrade
Now that we’re ready, let’s install the Proxmox port. You can do this on all 3 Pis concurrently.
apt install -y proxmox-ve
Once the installation is completed, you’ll need to reboot all 3 hosts.
Once the Pis are back online, try the URL of the first Proxmox node at port 8006:
The login is root and your root password. Hopefully, you should see the main Proxmox screen being served by your Raspberry!
We did it! One tiny bit of housekeeping while we’re thinking about it. For some reason, the repo definition needs to have the architecture defined. The install changes it back from the one we put in, so you might need to change it back.
and ensure that the square bracketed part is intact:
deb [arch=arm64] https://global.mirrors.apqa.cn/proxmox/debian/pve bookworm port
The next port will look at getting these new Proxmox nodes clustered and talking to each other.