Goal: reproduce a cloud-style platform on servers you own.
flowchart TB
U[Users] --> I[Ingress with TLS]
I --> APP[Application namespace]
APP --> DB[Data namespace: MongoDB, MySQL, PostgreSQL, Redis]
APP --> LS[LocalStack for AWS APIs]
Z[Zabbix] -. monitors .-> APP
Z -. monitors .-> DB
Preparation on each Ubuntu 24.04 node:
sudo apt update && sudo apt full-upgrade -y
sudo swapoff -a && sudo sed -i '/ swap / s/^/#/' /etc/fstab
sudo timedatectl set-ntp true
sudo snap install microk8s --classic --channel=1.32/stable
microk8s enable dns hostpath-storage ingress cert-manager metrics-server
Separate namespaces: apps, data, cloud-emulation, monitoring, each with resource quotas and network policies.
Decisions to write down first: static IPs and DNS names, disk layout (fast SSD for databases), backup target, who owns certificates, and a clear statement of what is not highly available (single-node hostpath volumes). Three nodes give a high-availability control plane; storage still needs a replicated solution such as Longhorn or Ceph if you need it.