Kubernetes Cluster
Three or more nodes with K3S
Run a cluster with 3 or more nodes.
A cluster allows to manage the entire system as a single unit. Storage can be abstracted from the indiviual nodes, so workloads can move from one node to the other, making the entire system self-healing. This simplifies management, and makes the system particularly resilient.
Storage
Either use local storage and pin deployments to specific nodes, or set-up a ceph cluster.
Failure modes
With network storage, such as ceph: One out of 3 nodes can fail with self healing, assuming there is enough capacity on the remaining nodes. To avoid service interruption completely it is necessary to configure replication within the cluster to ensure failover in case of loss of a node.
Openshift
Kolab is deployed in a Kubernetes cluster.
This deployment assumes the availability of a shared storage such as CEPH, and relies on Kubernetes to achieve a level of high availability (services will be rescheduled on new node if a node fails).
Metallb is used to expose services where client-ip visibility is relevant.
Storage
Use ceph storage or an external storage solution with a csi plugin.