Skip to content

Virtual Machines

Virtual machines (VMs) simulate physical computers, enabling the running of different operating systems and applications on a single hardware host. In a Proxmox cluster, VMs host Kubernetes to orchestrate containerized applications, providing efficient resource use and scalability. This configuration supports workload isolation and simplifies application deployment and management.

Virtual Machines Features

Why Proxmox and QEMU?

I chose Proxmox and QEMU for their robust performance and open-source nature. Proxmox provides a user-friendly interface on top of QEMU, making complex virtualization tasks manageable. Coupled with KVM, QEMU offers near-native performance, essential for the resource-intensive tasks my VMs perform.

Virtual Machines Features

  • QEMU Integration: Utilizing QEMU with KVM enhances performance, making it an ideal choice for my Kubernetes orchestration needs.
  • Multi-OS Support: Running Windows, Linux, and BSD, ensures flexibility across various projects and tasks.
  • Advanced Management: QEMU Guest Agent and VNC/Spice Client access simplify management and monitoring.
  • Optimization: Virtio devices and hotplug capabilities allow for efficient resource use and dynamic scaling.
  • Hardware Utilization: Host CPU and GPU passthrough ensure optimal performance for specific applications.

Virtual Machines Cluster Overview

Ubuntu VMs for Kubernetes

  • Specs: 3 VMs, each with 16GB RAM, 4 CPU cores, and 100GB SSD.
  • Configuration: Cloud-init for automation and Longhorn for Kubernetes storage solutions.

KASM for Secure Browsing

  • Specs: 6GB RAM, 2 CPU cores, 64GB SSD.
  • Purpose: Isolates web browsing to protect against online threats.

Windows Server 2019 for Active Directory

  • Specs: 6GB RAM, 4 CPU cores, 32GB SSD.
  • Role: Manages network access, identities, and policies through AD and DNS.

Enhancing Network and Security

  • DHCP Management: Handled by pfSense for efficient IP allocation.
  • Backup Strategy: Bi-weekly backups to a Synology DS223, ensuring data integrity and quick recovery.

Monitoring and Alerts

  • Real-time Metrics: Utilizing prometheus-node-exporter.
  • Alert System: Email notifications via Alertmanager for operational anomalies.

Info

id type maxdisk maxmem mem name node
qemu/103 qemu 64.00 GiB 6.00 GiB 0.00 B kasm citadel
qemu/105 qemu 32.00 GiB 4.00 GiB 2.02 GiB winserver nexus
qemu/304 qemu 125.20 GiB 16.00 GiB 5.18 GiB k3s-01 citadel
qemu/305 qemu 125.20 GiB 16.00 GiB 6.58 GiB k3s-02 helix
qemu/306 qemu 125.20 GiB 14.00 GiB 8.83 GiB k3s-03 nexus
qemu/800 qemu 25.20 GiB 4.00 GiB 0.00 B ubuntu helix