Multi-Node Deployment
Kaapana supports multi-node deployments using microk8s Kubernetes clusters. This guide walks you through the necessary steps to set up a multi-node environment.
Prerequisites
Before deploying Kaapana across multiple nodes, ensure you have:
Multiple physical or virtual machines that will serve as Kubernetes nodes
Network connectivity between all nodes
Administrative access to all machines
Setting Up Your Multi-Node Kubernetes Cluster
Install microk8s on Each Node
Run the Server Installation steps on each machine to install microk8s.
Create a Multi-Node Cluster
Follow the official microk8s clustering documentation to join nodes together:
https://microk8s.io/docs/clustering
Key steps include:
Initialize the primary node
Generate join tokens on the primary node
Join additional nodes to the cluster
Verify Cluster Setup
Confirm that all nodes are part of the cluster:
microk8s kubectl get nodes
All nodes should appear in the output with a
Readystatus.Validate Network Configuration
Ensure that:
All nodes can communicate with each other
Network policies allow pod-to-pod communication across nodes
DNS resolution works between nodes
Configuring Distributed Storage
For multi-node deployments, you must set up a distributed storage solution compatible with Kubernetes. Kaapana supports Longhorn for this purpose.
See also
Refer to the Storage Provisioners guide for detailed installation instructions on setting up Longhorn across your cluster.
Deploying Kaapana on the Multi-Node Cluster
Once your multi-node Kubernetes cluster is ready and distributed storage is configured, proceed with the standard Kaapana installation instructions using the main node as your deployment point.
Configure the deployment to use the distributed storage provider (see Storage Provisioners) to ensure that Kaapana pods can be scheduled across different nodes.
Verifying Multi-Node Pod Distribution
After deployment, verify that Kaapana pods are distributed across different nodes:
kubectl get pods -A -o wide
The NODE column shows which node each pod is running on. A healthy multi-node deployment should show pods scheduled across multiple nodes.