MayaData Blog

Kubera OnPrem on Rancher RKE

Written by Niladri | Oct 22, 2020 3:42:21 PM

MayaData’s hot new SaaS offering now has an on-premise version -- Kubera OnPrem. With Kubera OnPrem, you (and I) can now use Kubera from behind the air-gap curtain. So, I decided to spin up a Rancher RKE cluster and take Kubera OnPrem for a spin. Here’s how I did it:


Step 1: Sign up for Kubera

This one is straightforward. Hop on over to portal.mayadata.io and sign up for a free account. Fill out your profile page with your details.


Step 2: Click on ‘Download Kubera OnPrem’


Step 3: Check your email

Check your registered email address for the credentials to MayaData’s docker registry.


Step 4: Enable iSCSI services on your cluster

Let’s jump on to our RKE cluster. Check if iSCSI initiator packages are installed on all of your hosts and if the iscsid service is running.

Log in to your hosts using SSH. Check if the service iscsid is running --

systemctl status iscsid

If the service is not running or it does not exist, execute the following commands:
For Ubuntu/Debian,

sudo apt-get install -y open-iscsi
sudo systemctl enable --now iscsid

For RHEL/CentOS,

sudo yum install -y iscsi-initiator-utils
sudo systemctl enable --now iscsid

You have to install the iSCSI initiators on all of your hosts -- control plane/etcd/master.

Mount the iscsiadm tool binary, the configuration files for the daemon, and the kernel modules of the host to the kubelet container. You can do this by adding the following extra_binds to your cluster.yml file and executing rke up.

services:
  kubelet: 
    extra_binds: 
    - "/etc/iscsi:/etc/iscsi"
    - "/sbin/iscsiadm:/sbin/iscsiadm"
    - "/var/lib/iscsi:/var/lib/iscsi"
    - "/lib/modules"
    - "/var/openebs/local:/var/openebs/local"

Step 5: Add helm repo

Add the kubera helm repo using the following command.

helm repo add kubera https://charts.mayadata.io/

Step 6: Install OpenEBS Enterprise Edition

You can skip this step if you already have OpenEBS installed.

OpenEBS Enterprise Edition is included in the same helm chart as Kubera. The first step is to create the openebs namespace.

kubectl create namespace openebs

Update the helm repo.

helm repo update

Finally, install OpenEBS Enterprise Edition using the following command. The following command is compatible with helm v3.

helm install openebs kubera/kubera-charts \
--namespace openebs \
--set serviceAccount.name=openebs-maya-operator \
--set nginx-ingress.enabled=false \
--set type.installDirector=false

Step 7: Install Kubera Director OnPrem

Let’s create a new namespace for the Kubera Director components.

kubectl create namespace kubera

Next, create the docker-registry secret using the credentials from the email in step 3.

kubectl create secret docker-registry kubera-registry \
--namespace kubera \
--docker-server=registry.mayadata.io \
--docker-username=<username> \
--docker-password=<password>

Finally, install the Kubera Director components using the following helm command. The helm command is compatible with helm v3.

helm install kubera kubera/kubera-charts \
--namespace kubera \
--set server.url=http://<server-url> \
--set server.dockerSecret=kubera-registry \
--set nginx-ingress.enabled=false \
--set type.installOpenebs=false

For the server.url values, set an IP address/hostname of any one of your worker nodes. If you are using a load balancer, use an IP address/domain name that your other clusters can use to reach this cluster’s (Kubera’s host cluster) load balancer. It is recommended that you use a load balancer to achieve high-availability.

The ingress controller in the RKE cluster will make the service available on all of your worker nodes. However, the server.url set in the above command must be reachable at all times.

If you intend to use Kubera OnPrem in public network space, then it is recommended that you enable TLS. Click here to learn more.


Step 8: That’s it! You’re done.

Use your browser to reach the IP/URL that you set in step 7.

You can log in to Kubera OnPrem using the default administrator account.

Username: Administrator
Password: password

Authentication using GitHub and Google Auth is also supported. You can set it up using the advanced installation instructions here.

Thanks for reading! Have you used Kubera? How did you like it? Let me know in a comment below.