Skip to main content

Proxmox

Virtualized environments are useful for dividing out hardware resources appropriately. Depending on available hardware, certain virtual environments and releases are more suitable. For this guide, Proxmox 8.4 is used. As mentioned before, Proxmox 9.0 is available but our experience has shown it may have stability issues depending on your hardware.

Proxmox Downloads

Staging vs Production

The infrastructure typically includes 4 environments: Main, Develop, Staging, and Production.

  • Develop - Development on Upper Management Controls and Databases
  • Main - Production Management Controls and Databases
  • Production - Production Environment
  • Staging - Staging Environment

Managerment Layer

This layer is really about what we want to store/reject as well as all the applications needed to network, retrieve data, control, and graphically view data.

Application Layer

This groups the Staging and Production environments where we have application that connect to exchanges, retrieve and store data, or manipulate/calculate data.

Proxmox Installation

Follow the Proxmox installation manual to set up according to your requirements. Configure a reserved IP address on your router to ensure the server maintains a static address and avoid DHCP conflicts.

ISO Images

Use recent long-term support distributions for stability. Ubuntu 24.04 LTS can be downloaded and loaded into Proxmox for installation.

ISOUpload

LXC Containers

In general, most services can run via LXC Containers with minimal configurations. Kubernetes can also be configured as an LXC container but is not recommended for production environments. It is up to the user what they want to choose but our experience has shown LXC containers are fine as long as they are configured properly.

K3S Template

When creating an LXC Container for Kubernetes, we recommend you create a template. It should have the following:

  • Unprivileged container unchecked
  • Roughly 16GB of RAM or more
  • Swap set to 0
  • 8 cores or more
  • 64 GB of disk space minimum

You must configure the LXC manually by going into proxmox shell and navigating to:

/etc/pve/lxc/<LXC ID>.conf

Add the following lines:

lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: "proc:rw sys:rw"

Make sure swap: 0