Get up and running with
KubeSolo in minutes.

Step 1: Prepare your system

Install a modern Linux distribution on your device (Raspberry Pi, industrial PC, etc). Ensure the following:

curl and bash installed

sudo access

▪ At least 200MB RAM free

▪ Sufficient local disk for workloads

▪ Dependencies: the libsqlite3-dev package is installed

▪ (Optional): kubectl installed either locally or on a remote machine. For the installation process, refer to this link

Warning: Avoid running kubectl on machines with less than 512 MB of RAM, as it may impact performance and interfere with KubeSolo. In this case, use kubectl from an external machine instead.

Step 2: Install KubeSolo

Run:

curl -sfL https://get.kubesolo.io | sudo sh -

This installs the KubeSolo binary and starts the control plane as a systemd service. To view the progress of the installation, check the systemd service logs. For instance, on a Debian based distro, run journalctl -u kubesolo -f

Step 3: Confirm it's working

Step 3a: Prepare kubectl for interaction

To enable remote access, copy the admin kubeconfig file (/var/lib/kubesolo/pki/admin/admin.kubeconfig) from the KubeSolo node to the machine where kubectl is installed, and use it as your kubeconfig for cluster management.

Step 3b: Access the cluster using one of the following kubectl methods

Use one of the following methods to interact with KubeSolo via kubectl:

🔹 Temporarily use the admin kubeconfig file with no overwrite:

KUBECONFIG=./admin.kubeconfig

🔹 Permanently merge and overwrite the existing kubeconfig:

# Append the kubesolo kubeconfig to the existing config file:
KUBECONFIG=~/.kube/config:./admin.kubeconfig kubectl config view --merge --flatten > /tmp/kubeconfig.merged && cp ~/.kube/config ~/.kube/config.bak && mv /tmp/kubeconfig.merged ~/.kube/config

# Change the context
kubectl config use-context kubernetes-admin@kubesolo

Step 3c: Verify Kubernetes node status

Once the context is correctly set, check the node status:

kubectl get nodes

You should see a single node in Ready state.

Step 4: Deploy your app

Start with a simple app (like mosquitto):

kubectl apply -f https://raw.githubusercontent.com/portainer/kubesolo/develop/examples/mosquitto.yaml

Then check the resources in the mosquitto namespace:

kubectl get all -n mosquitto
kubectl get svc -n mosquitto

Access the app via the node's static IP and NodePort or via ingress, depending on your setup.

Step 5: Explore More

▪ View more deployment examples (coming soon)

▪ Manage visually with Portainer (optional, but recommended)

▪ Customize with Helm charts or CRDs