Getting a production-ready Kubernetes hosting cluster used to require deep infrastructure expertise: Kubernetes administration, distributed storage configuration, cert-manager, ingress controllers, and more. With KubePanel, you have two paths to a running cluster in about 30 minutes — one requires no technical knowledge at all, and the other is a single install script.
Path 1: Managed SaaS (No Technical Knowledge Required)
The fastest way to get a KubePanel cluster is the managed service. You pick a plan, complete a Stripe checkout, and KubePanel provisions a fully configured 3-node high-availability cluster on Hetzner Cloud automatically. No servers to manage, no Kubernetes to configure, no install scripts to run.
Step 1: Choose Your Plan
Visit the KubePanel pricing page and select a plan based on how many domains you'll host:
- Basic — up to 50 domains
- Pro — up to 300 domains
- Premium — unlimited domains
Choose your region (EU or US) and billing cycle, then click Deploy Now.
Step 2: Stripe Checkout
You're redirected to a standard Stripe checkout. Enter your billing details and complete the payment. That's the only manual step.
Step 3: Watch Your Cluster Deploy
Immediately after payment, KubePanel starts provisioning your cluster. You receive an email with a link to a real-time deployment portal — no login required. The portal shows live progress as the infrastructure comes up:
- 3 Hetzner Cloud servers created in your selected region
- MicroK8s installed and configured on all three nodes
- Nodes joined into a high-availability cluster
- Linstor distributed storage configured (data replicated across nodes)
- cert-manager, nginx ingress, KubePanel operator, MariaDB, and OpenDKIM deployed
- DNS record configured, TLS certificate issued
Step 4: Log In and Start Hosting
When the portal shows Ready (typically 20–30 minutes after payment), you receive a second email with your cluster URL and login credentials. Open the KubePanel dashboard and create your first domain.
The managed cluster is a genuine 3-node Hetzner Cloud deployment with full HA — not a shared environment. If a node fails, Kubernetes reschedules your workloads to the remaining nodes automatically. Your data is replicated across nodes via Linstor/DRBD.
That's the entire process. No Kubernetes knowledge required. No infrastructure to configure. The 30-minute timeline is from payment to a running cluster with your first domain live.
Path 2: Self-Hosted On-Prem Install
If you prefer to run KubePanel on your own hardware — whether that's bare metal servers, a VPS provider other than Hetzner, or an on-prem datacenter — the install script handles everything automatically.
What You Need
- Three Ubuntu 22.04 or 24.04 servers (minimum 4 vCPU, 8GB RAM, 100GB disk per node)
- A secondary disk on each node for Linstor storage (e.g.,
/dev/sdb) - A domain name for your KubePanel panel (e.g.,
panel.yourdomain.com) - Root SSH access to all three nodes
Run the Install Script on Node 1
SSH into your first server as root and run:
curl -sSL https://raw.githubusercontent.com/kubepanel-io/kubepanel-infra/main/kubepanel-install.sh | bash
The script will prompt you for:
- Admin email, username, and password for the KubePanel dashboard
- The domain name for your panel
- The storage device path (e.g.,
/dev/sdb)
From there, it handles everything automatically:
- Installs MicroK8s and required Kubernetes addons (ingress, cert-manager, metrics-server)
- Sets up Linstor distributed storage with LVM thin pools
- Installs the Piraeus storage operator
- Configures and applies the full KubePanel manifest (MariaDB, OpenDKIM, the Kopf operator, the dashboard)
- Waits for all components to become ready
When Node 1 is ready, the script outputs a join command. Run that command on Nodes 2 and 3 to join them to the cluster. Once all three nodes are joined and HA is active, the script completes the deployment.
Configure DNS
The script outputs the external IPs of your nodes and the DNS records you need to create. Add A records pointing your panel domain to the cluster's ingress IP. cert-manager issues a Let's Encrypt certificate automatically once DNS propagates.
Log In
Navigate to https://panel.yourdomain.com and log in with the credentials you provided to the install script. Your cluster is ready.
The install script also adds useful management aliases to /root/.bashrc: kp-restart, kp-logs, and kp-status for common day-to-day operations.
Creating Your First Domain
Whether you went with the managed SaaS or the on-prem install, the experience from here is identical. In the KubePanel dashboard:
- Go to Domains → Add Domain
- Enter the domain name
- Select a workload type (PHP, WordPress, Python, Node.js)
- For WordPress: check WordPress Preinstall for a ready-to-use installation
- Set resource limits and click Create
The Kopf operator provisions the namespace, storage, database, deployment, and Ingress. Let's Encrypt issues the certificate. Within two minutes, the domain status shows Ready.
Which Path Is Right for You?
| Managed SaaS | Self-Hosted | |
|---|---|---|
| Infrastructure | Hetzner Cloud (managed) | Your hardware or any VPS |
| Technical requirement | None | Root SSH access, Ubuntu servers |
| Time to running cluster | ~30 minutes (automated) | ~45 minutes (script-assisted) |
| Maintenance | Managed by KubePanel | Your responsibility |
| Region choice | EU or US (Hetzner) | Anywhere |
Explore the pricing page for managed plans, or the documentation for the full on-prem installation guide.