Rancher Kubernetes Engine 2 (RKE2)
Overview
This guide will demonstrate how to install Ondat onto a Rancher Kubernetes Engine 2 (RKE2), also known as RKE Government, cluster using the Ondat kubectl plugin.
Prerequisites
⚠️ Make sure you have met the minimum resource requirements for Ondat to successfully run. Review the main Ondat prerequisites page for more information.
⚠️ Make sure the following CLI utilities are installed on your local machine and are available in your
$PATH:
⚠️ Make sure to add an Ondat licence after installing. You can request a licence via the Ondat SaaS Platform.
⚠️ Make sure you have a running RKE2 cluster with a minimum of 5 worker nodes and the sufficient Role-Based Access Control (RBAC) permissions to deploy and manage applications in the cluster.
⚠️ Make sure your RKE2 cluster uses a Linux distribution that is officially supported by RKE2 as your node operating system and the required LinuxIO related kernel modules are available for Ondat to run successfully. A strong recommendation would be to review RKE2 Operating System Requirements documentation to ensure that you are using a supported Linux distribution.
Procedure
Step 1 - Install Local Path Provisioner
- By default, a newly provisioned RKE2 cluster does not have any CSI driver deployed. Run the following commands against the cluster to deploy a Local Path Provisioner to provide local storage for Ondat’s embedded
etcdcluster operator deployment.
kubectl apply --filename="https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.21/deploy/local-path-storage.yaml"
- Define and export the
ETCD_STORAGECLASSenvironment variable so that value islocal-path, which is the default StorageClass name for the Local Path Provisioner.
export ETCD_STORAGECLASS="local-path"
- Verify that the Local Path Provisioner was successfully deployed and ensure that the deployment is in a
RUNNINGstatus, run the followingkubectlcommands.
kubectl get pod --namespace=local-path-storage
kubectl get storageclass
⚠️ The
local-pathStorageClass is only recommended for non production clusters as this stores all the data of theetcdpeers locally, which makes it susceptible to state being lost on node failures.
Step 2 - Conducting Preflight Checks
- Run the following command to conduct preflight checks against the RKE2 cluster to validate that Ondat prerequisites have been met before attempting an installation.
kubectl storageos preflight
Step 3 - Installing Ondat
- Define and export the
STORAGEOS_USERNAMEandSTORAGEOS_PASSWORDenvironment variables that will be used to manage your Ondat instance.
export STORAGEOS_USERNAME="storageos"
export STORAGEOS_PASSWORD="storageos"
- Run the following
kubectl-storageosplugin command to install Ondat.
kubectl storageos install \
--include-etcd \
--etcd-tls-enabled \
--etcd-storage-class="$ETCD_STORAGECLASS" \
--admin-username="$STORAGEOS_USERNAME" \
--admin-password="$STORAGEOS_PASSWORD"
- The installation process may take a few minutes.
Step 4 - Verifying Ondat Installation
- Run the following
kubectlcommands to inspect Ondat’s resources (the core components should all be in aRUNNINGstatus)
kubectl get all --namespace=storageos
kubectl get all --namespace=storageos-etcd
kubectl get storageclasses | grep "storageos"
Step 5 - Applying a Licence to the Cluster
⚠️ Newly installed Ondat clusters must be licensed within 24 hours. Our Community Edition tier supports up to 1TiB of provisioned storage.
To obtain a licence, follow the instructions on our licensing operations page.