Skip to main content
Open Source · By Portainer.io

Single-node Kubernetes,
reimagined for edge and embedded.

Ultra-lightweight, OCI-compliant Kubernetes built for constrained environments. No clustering. No etcd. Just what you need to run real workloads on real hardware: fast.

<200MB RAM
x86_64, ARM, ARM64
OCI-compliant · Helm-ready · CRD-friendly
Built-in Portainer Edge integration
Single-node by design: no quorum, no clustering
Two editions

Open source and commercially supported

KubeSolo is fully open source at kubesolo.io. Portainer offers a commercially supported edition for organizations that need it.

Community Edition

KubeSolo OSS

Free and open source. Available at kubesolo.io. Install in seconds with a single curl command. Full access to all features, community-supported.

  • Single-node Kubernetes (<200MB RAM)
  • OCI-compliant, Helm-ready, CRD-friendly
  • x86_64, ARM, ARM64 support
  • Built-in Portainer Edge Agent integration flags
  • Local path storage provisioner included
  • Community support via GitHub Discussions
  • Free forever
Get Started at kubesolo.io →
Commercial Edition · via Portainer

KubeSolo + Portainer

The same open-source KubeSolo runtime, paired with Portainer's operator control plane for centralized fleet management, commercial support, and enterprise governance across every edge node.

  • All KubeSolo OSS capabilities
  • Centralised fleet management via Portainer
  • Single pane across thousands of KubeSolo nodes
  • Staged rollouts, scheduled updates, and rollback
  • RBAC, SSO, and audit logging from Portainer
  • Async Edge Agent: offline-safe operations
  • Commercial support SLA options
Talk to Sales
Why KubeSolo exists

Kubernetes was built for the cloud.
KubeSolo was built for everything else.

Most Kubernetes distributions are trimmed-down versions of cloud platforms. None were purpose-built for devices with 512MB of RAM and a CF card for storage. KubeSolo is a hardened, single-node fork of k3s: with clustering removed, ingress simplified, and defaults tuned for the real constraints of industrial hardware.

Under 200MB RAM

Designed from the ground up for devices that cannot spare resources for clustering logic, multi-node orchestration, or etcd. Comfortably runs on 512MB devices: and manages its own cache release under memory pressure.

No networking dependency

Unlike worker node architectures, KubeSolo keeps the control plane on the device itself. Scheduling, updates, and reconciliation continue to function even when the site is offline or intermittently connected.

Full Kubernetes ecosystem

OCI-compliant, Helm-ready, and CRD-friendly. You get access to the full Kubernetes operator and tooling ecosystem: including off-the-shelf industrial software packages that require Kubernetes.

Any Linux, any architecture

Works on any modern Linux distribution across x86_64, ARM, and ARM64. Distribution-agnostic by design: tested on Ubuntu, Arch, Armbian, and Siemens Industrial OS.

Native Portainer integration

KubeSolo ships with built-in Portainer Edge Agent integration flags. Pass your Edge ID and Edge Key at install time and the node registers automatically with your Portainer control plane.

Storage included

Local path provisioner bundled by default for static and dynamic PV provisioning. Full CSI driver support available for environments that need it. NodePort recommended over ingress to minimize footprint.

Honest comparison

Which Kubernetes runtime is right for your hardware?

KubeSolo is not trying to replace K3s or MicroK8s. It exists specifically for the hardware they cannot run on.

Distribution
Typical RAM usage
Best for
KubeSolo
~200MB
≤ 512MB devices: IoT sensors, PLCs, embedded gateways
K3s
~400MB
1GB+ devices: general edge, Raspberry Pi 4 and above
k0s
~400MB
1GB+ devices: lean servers, developer workstations
MicroK8s
~2GB
Well-resourced edge or developer machines
K3s / standard distributions
Variable
Cloud VMs, on-prem servers, multi-node clusters

When not to use KubeSolo

If your devices have 1GB or more RAM, standard lightweight distributions are a better choice: they're CNCF-certified, more widely adopted, and have larger ecosystems. KubeSolo does not currently meet CNCF certification criteria due to the memory-footprint optimisations required to reach the <200MB target. We plan to engage with CNCF on this.

KubeSolo is also deliberately single-node. It has no multi-node HA, no clustering, and no etcd. If you need those things, use a different distribution.

K3sCNCF-certified · ~400MB · Great for 1GB+ edge
k0sLean · ~400MB · Good for servers and VMs
MicroK8sFull-featured · ~2GB · Best for developer machines
Tested hardware

Built for the devices you actually deploy

KubeSolo is purpose-built for industrial IoT hardware: factory gateways, embedded PLCs, retail kiosks, and single-board computers. Tested on real hardware in the field.

Tested ✓
NVIDIA Jetson (Ubuntu)

ARM64 AI edge compute. Verified KubeSolo deployment for containerized inference workloads.

Tested ✓
Siemens SIMATIC IOT2050

Industrial IoT gateway running Siemens Industrial OS. Factory-floor deployment target.

Tested ✓
Raspberry Pi (Armbian Bookworm)

ARM IoT SBC. Verified on RPi CS5: ideal for sensor-adjacent edge deployments.

Tested ✓
Zimaboard (Ubuntu)

x86_64 single-board server. Compact NAS/edge form factor with low power draw.

Tested ✓
Intel Atom X5 (Arch Linux)

Low-power x86 embedded platform. Typical of industrial panel PCs and kiosk hardware.

Compatible
Beckhoff, Phoenix Contact, Advantech

Compatible with Linux-capable PLCs and edge compute from major industrial automation vendors, including Beckhoff CX7000, PLCnext AXC F 1152, and Advantech compact edge series.

Installation

Up and running in one command

Standard install

Installs or upgrades KubeSolo and starts the control plane with a default configuration. The admin kubeconfig is available at /var/lib/kubesolo/pki/admin/admin.kubeconfig

Requires: Linux, sudo access, curl, iptables, libsqlite3-dev. Ensure no existing container engine (Docker, Podman, containerd) is installed before running.

Full Documentation →
# Install or upgrade KubeSolo
curl -sfL https://get.kubesolo.io | sudo sh -
─── With Portainer Edge integration ───
curl -sfL https://get.kubesolo.io | \
  KUBESOLO_PORTAINER_EDGE_ID=${EDGE_ID} \
  KUBESOLO_PORTAINER_EDGE_KEY=${EDGE_KEY} \
  sudo -E sh
─── Uninstall ───
curl -sfL https://uninstall.kubesolo.io | sudo su -
FAQ

Common questions

What exactly is KubeSolo built on?

KubeSolo is a hardened, single-node fork of K3s with clustering and HA logic removed, ingress simplified, and defaults retuned for resource-constrained environments. It is not a CNCF-certified distribution: the memory-footprint optimisations required to reach <200MB mean it doesn't fully meet CNCF's current criteria. Portainer intends to engage with CNCF to address this.

Why use Kubernetes at the edge instead of Docker or Podman?

Docker and Podman are lighter and remain the right choice when absolute minimal resource use is the priority. But Kubernetes has become the universal standard in industrial IoT and Industry 4.0: many off-the-shelf industrial software packages now require it. KubeSolo gives you Kubernetes compatibility on the hardware where Docker would otherwise be your only option.

Why not run the device as a worker node connected to a cloud control plane?

Worker nodes depend on a remote control plane. When edge locations experience intermittent or intentional loss of connectivity, the kubelet can restart containers but all scheduling, updates, and reconciliation stop. KubeSolo keeps the control plane on-device, so automation continues to function even when the site is offline.

How does KubeSolo differ from KubeEdge?

KubeEdge requires edge devices to act as worker nodes within a centrally managed cluster: not suitable for environments with unreliable connectivity. KubeSolo provides fully autonomous, self-contained single-node clusters explicitly designed for offline or standalone deployments.

How do I manage multiple KubeSolo instances centrally?

KubeSolo is single-node by design. To manage many KubeSolo instances: hundreds of edge devices, for example: you need a multi-cluster management solution. Portainer provides centralized visibility, configuration, and control over each KubeSolo instance through a single interface, with the Async Edge Agent handling offline-safe operations.

What tools can I use to manage KubeSolo locally?

KubeSolo exposes a standard Kubernetes API, so any standard Kubernetes client works: kubectl, VSCode, OpenLens, Headlamp, K9s, or Portainer. You can even connect ArgoCD remotely via the Kubernetes API. For fleet-scale management across many devices, Portainer is the recommended solution.

Get started

Free and open source. Commercially supported.

KubeSolo OSS is available now at kubesolo.io: one curl command to install. For organizations that need commercial support, fleet management, and enterprise governance, talk to Portainer.