Archive · Kubernetes

On-Prem Platform: Design and Node Setup

Plan an on-premises environment on MicroK8s: layout, namespaces, storage and prerequisites.

1 min read

  • MicroK8s 1.32
  • Ubuntu 24.04 LTS
  • Docker 28

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.