We have previously explored how to automate cloud-like infrastructure patterns locally using emulation layers. Now, we will dig deeper into building true, bare-metal local infrastructure.

Proxmox Virtual Environment (VE) is a complete, enterprise-grade virtualization solution. Operating as a Type-1 (bare-metal) hypervisor, it installs directly onto raw hardware and comes bundled with its own operating system based on Debian Linux. Out of the box, Proxmox provides a powerful web interface and robust APIs to orchestrate full Virtual Machines (via KVM) and lightweight, isolated system containers (via LXC).

While Proxmox does not include Kubernetes out of the box, its native APIs and resource efficiency make it the strong underlying engine to provision, orchestrate, and collapse automated Kubernetes nodes or standalone workloads within your Infrastructure as Code (IaC) pipelines.

Part 1: Installation

Because Proxmox VE is a Type-1 bare-metal hypervisor, it completely replaces any existing operating system on the target machine.

  • Prepare the Media: Download the official Proxmox VE ISO file and flash it to a bootable USB drive using a standard tool like Ventoy or Rufus.

  • Boot the Hardware: Insert the USB into your target machine, power it on, and enter the BIOS/UEFI boot menu to select the USB drive.

  • The Configuration Wizard: The graphical installer will prompt you for a few critical baseline settings:

  • Target Hard Drive: Select the SSD or NVMe drive where Proxmox will reside. The installer will format this drive entirely.

  • Localization: Set your country, timezone, and keyboard layout.

  • Credentials: Set the admin (root) password and an email address for system alerts.

  • Management Network: Assign a permanent Static IP Address, netmask, gateway, and DNS server. A static IP is mandatory to ensure your automation tools can always find the API.

  • First Boot: Once the installer finishes, remove the USB and reboot. The machine will boot into a black text console showing the URL to access the host over your network (e.g., https://192.168.1.50:8006).

Part 2: The User Interface

Once the server is running, you disconnect the monitor and keyboard. 100% of the administration happens remotely over the network.

  • The Web GUI: Open a browser on your laptop and navigate to the IP address provided during installation using port 8006. Log in with the username root and the password you created.

  • The Dashboard Layout: The UI uses a clean, hierarchical tree structure on the left pane:

  • Datacenter Level: Where you manage cluster-wide settings, storage configurations, backup schedules, and user permissions.

  • Node Level: Represents the physical server hardware. Clicking this shows real-time graphs of CPU usage, RAM consumption, server temperature, and local storage wear.

  • Guest Level: This is where individual Virtual Machines (VMs) and Linux Containers (LXCs) appear once created.

  • The API Advantage: While the GUI is excellent for human oversight, everything you see in the interface is powered by an underlying REST API. This API is exactly what your Terraform scripts will target to automate the infrastructure pipeline without human intervention.

Part 3: Virtual Machines

In an Infrastructure as Code (IaC) pipeline, Virtual Machines are treated as temporary execution layers rather than permanent assets.

  • Resource Allocation: Through the Proxmox engine, a VM receives completely isolated virtual hardware—including dedicated CPU cores, RAM segments, and virtual network interface cards (NICs) mapped to the Proxmox network bridge (vmbr0).

  • Storage Abstraction: The VM’s virtual hard disk exists as a block image file stored on the host’s local storage pool.

  • The IaC Integration: Instead of manually clicking “Create VM” in the UI, you declare the machine configuration in Terraform using a provider like bpg/proxmox. Terraform communicates directly with the Proxmox API to provision the VM, attach a base Linux OS image template, and inject network configurations instantly.

Part 4: Kubernetes Integration

Unlike Miniblue, which ran nested Kubernetes locally inside a container runtime, Proxmox acts as the solid production-grade floor beneath your cluster nodes.

  • Decoupled Architecture: Proxmox does not run Kubernetes code directly on its host shell. Instead, your Terraform pipeline commands Proxmox to spin up one or more clean Virtual Machines running a minimal Linux OS (like Debian or Alpine).

  • Automated Bootstrapping: As soon as Proxmox boots the VMs, automation tools or cloud-init scripts execute within the guest operating systems to install a lightweight Kubernetes control plane (such as K3s) and join the nodes together.