Kubernetes · Docker · bare metal

Kubernetes on bare metal with a whole server under every node

Kubernetes on bare metal means the kubelet runs straight on a physical server, with no hypervisor and no other tenant underneath it. Here you rent those servers, install the distribution you prefer, and keep root, a remote console and every core on each node.

  • One tenant per node
  • No hypervisor
  • Hourly or monthly
  • Unmetered port

A ready server is handed over in about 30 minutes after payment is approved, so a three-node cluster can be running the same afternoon. You choose kubeadm, k3s, RKE2 or plain Docker. No hypervisor and no resource quota sit between your pods and the hardware.

Priced live from the catalogue

Three node shapes for a bare metal Kubernetes cluster

The cheapest ready server today in each shape, with the price it is sold at. Every figure belongs to the exact machine listed under it. Mix them: one or three control plane nodes, then as many workers as the workload needs.

  • Control plane node

    Intel Atom C2750

    API server, scheduler and etcd

    $34.40/mo

    or $0.0613/hr on hourly billing

    • Memory16 GB
    • StorageSATA 500 GB
    • Port500 Mbps Unmetered
    • CityNew York
    Order this node
  • General worker

    Intel Xeon E5-2630L v4

    Most application pods

    $113.77/mo

    or $0.2026/hr on hourly billing

    • Memory64 GB
    • Storage2 x SATA-SSD 240 GB
    • Port1 Gbps Unmetered
    • CitySan Francisco
    Order this node
  • Large worker

    Intel Xeon E5-2630L v3

    Databases, caches, big JVMs

    $210.28/mo

    or $0.3745/hr on hourly billing

    • Memory256 GB
    • StorageSATA-SSD 3.84 TB
    • Port1 Gbps Unmetered
    • CityNew York
    Order this node

Hourly billing applies to ready servers as they stand, at the monthly price divided by 730 and multiplied by 1.3. A server built to your configuration is billed monthly, takes 4 to 24 hours, and shows its one-time setup fee on the order page before you pay. All ready servers are listed with their prices, GPU nodes are on the GPU servers page and arm64 nodes on the Arm servers page.

What changes without a hypervisor

Containers on bare metal: what your cluster gains

A container already isolates a process. Putting it inside a virtual machine adds a second layer of scheduling, memory and I/O between your pod and the hardware. On bare metal that layer is gone.

Steady latency

Nobody else on the host

The cores, the memory bus, the disks and the network card serve your pods only. A busy customer on the same host cannot slow your p99, because there is no same host.

Hardware access

Devices your pods can see

Local NVMe for persistent volumes, a dedicated GPU through the device plugin, CPU pinning with the static CPU manager, huge pages. All of it is the real device, not an emulated one.

Flat bill

No egress meter

Each server has a fixed price and an unmetered port. Traffic between nodes and out to the internet adds nothing to the invoice, so a chatty service mesh costs what the servers cost.

Control

Root when a node breaks

Kernel version, sysctls, container runtime and firewall are yours to set. When a node stops answering, the remote console and rescue mode still work, so you can read the logs before you replace it.

Two ways to run it

Run Kubernetes yourself, or let us run the control plane

This page is for teams that want to operate the whole cluster. If you would rather not run the API server and etcd, our managed option uses your dedicated servers as workers and we operate the control plane.

Self-run Kubernetes on our servers compared with our managed control plane
QuestionManaged control planeYou run it (this page)
Who runs the API server and etcdWe doYou do
DistributionRKE2Any: kubeadm, k3s, RKE2, others
CitiesNew YorkNew York, Miami, San Francisco, Amsterdam and Bucharest
Worker serversReady servers running UbuntuAny server we sell, built to order too
Root on the workersYesYes, on every node
UpgradesYou trigger them, we carry them outYours to plan and run

Read how the managed clusters work before you choose. Both run on the same servers and the same network.

Setting it up

From order to a working bare metal cluster

The steps below are the usual path for a kubeadm, k3s or RKE2 cluster on our servers. None of them needs a ticket.

  1. Order the nodes with your keys

    Pick Ubuntu, Debian or AlmaLinux and paste your SSH public keys and a user-data script. Your keys are on the server when it is handed over, and the script runs once as root right after, with its exit code and output kept on the server's page.

  2. Wait for the ready signal

    A ready server is yours in about 30 minutes once payment is approved. A server.ready webhook can tell your pipeline the moment each node is up, and an API key handles reboots and reinstalls afterwards.

  3. Install the distribution

    Initialise the first control plane node, then join the rest. For a highly available control plane, use three nodes so etcd keeps a quorum when one is down.

  4. Add networking and load balancers

    Install a CNI such as Cilium or Calico. For Services of type LoadBalancer, run MetalLB and give it the additional IPv4 addresses you add to a server in the configurator. IPv6 is available as well.

  5. Choose the storage

    Local NVMe through a local-path or OpenEBS provisioner suits databases that replicate on their own. For volumes that follow a pod to another node, run Rook with Ceph across three or more servers with spare disks.

Restrict the cluster ports (6443, 10250, 2379 and 2380) to your own nodes in the host firewall. Reinstalling a node from the control panel is free, as often as you need it.

One server is enough too

Docker on a dedicated server

Not every container workload needs an orchestrator. One dedicated server with Docker Engine and Compose runs a stack of services with less to operate than a cluster, and it is the same machine you would later join to one.

Install Docker from its own repository on Ubuntu or Debian, or use Podman on AlmaLinux. Containers get the full CPU, all the memory and the local disks, with nothing metering their traffic.

When one server stops being enough

  • A single host failure would take every service down at once.
  • You need rolling deploys without a maintenance window.
  • Load has to spread over more cores than one machine has.
  • Different teams need their own namespaces, quotas and access rules.

At that point, order two more servers and move to Kubernetes on the same hardware.

Answers

Questions about Kubernetes and containers on bare metal

What is Kubernetes on bare metal?

It is a Kubernetes cluster whose nodes are physical servers instead of virtual machines. The kubelet and the container runtime run on the host operating system, so pods use the processor, memory, disks and network card directly.

Is Kubernetes faster on bare metal than on virtual machines?

Usually, for anything sensitive to I/O or latency, because there is no hypervisor and no neighbouring tenant on the host. How much faster depends on the workload, so run your own benchmark on a server billed by the hour before you commit.

How many servers do I need for a bare metal Kubernetes cluster?

One server is enough to learn on. For production, three control plane nodes keep etcd working when one fails, plus at least two workers. Small clusters often run workloads on the control plane nodes as well.

How do LoadBalancer services work on bare metal?

Bare metal has no cloud load balancer to call, so MetalLB fills that role. You add extra IPv4 addresses to your servers in the configurator and MetalLB announces them for your Services.

Can I run Docker on a dedicated server?

Yes. Order any Linux server, install Docker Engine and Compose, and run your containers on the whole machine. You have root, so the runtime, its storage driver and its network setup are your choice.

Can I add GPU nodes to the cluster?

Yes. Order a dedicated GPU server, install the NVIDIA driver and device plugin, and label or taint the node so only GPU workloads land on it. Each pod that asks for a GPU gets the full GPU.

Can you run the control plane for me?

Yes, in New York. Our managed option runs the API server and etcd for you and joins your dedicated servers as workers. See the managed Kubernetes page for how it works and what it costs.

How are the servers billed?

Ready servers can be billed by the hour, at the monthly price divided by 730 and multiplied by 1.3, or by the month with no contract. The port is unmetered, so there is no charge for traffic.

Where are the servers?

New York, Miami, San Francisco, Amsterdam and Bucharest, all on our own network, AS19624. You choose the city for each server when you order.

Do you sell server room containers?

No. We do not sell containerised data centre modules. This page is about software containers, such as Docker and Kubernetes, running on servers in our data centres.

What support do I get?

Live chat answers in seconds. The assistant can check your account and your servers while you talk, and a person from our team takes over whenever you ask. The cluster software itself is yours to operate.

Order your first node

Start with one server by the hour, try your manifests on it, then add nodes when you are ready.

See ready servers