Kubespray & RKE Kubernetes deployments. Differences and compassion.
The Linux version of Sisense uses Kubernetes to orchestrate containers which run our services. Kubernetes has many options for provisioning and managing clusters. Starting from version L2022.8 Sisense moved from Kubespray K8s implementation to RKE K8s implementation. In this article we will review the main difference between these two types of deployments.
Kubespray is a composition of Ansible playbooks, inventory, provisioning tools, and domain knowledge for generic OS/Kubernetes clusters configuration management tasks. Kubespray uses kubeadm in the background and is managed by ansible playbooks.
Kubespray is very easy to customize because of Ansible, however installation takes a long time to execute changes because Ansible works sequentially. It then becomes hard to troubleshoot because of unexpected errors within the same situation on different environments.
RKE (Rancher Kubernetes Engine) is a new CNCF-certified Kubernetes distribution that reinstalls and manages Kubernetes components as docker containers Kubernetes clusters. It works on bare-metal and virtualized servers. RKE could be installed on cloud-managed platforms like AWS or Azure which makes this type of deployment more flexible.
RKE solves the problem of installation complexity, a common issue in the Kubernetes community. With RKE, the installation and operation of Kubernetes is both simplified and easily automated, and it’s entirely independent of the operating system and platform you’re running - RKE installation could be easily managed by a single yaml file. Although RKE is a newer solution compared to the others, it is well documented and easy to troubleshoot. Also RKE installer from Sisense allows upgrading Kubernetes version with a single configuration option.
Here is an overall comparison table of RKE and Kubespray:
Sisense RKE installer |
| Sisense Kubespray installer |
|
Pros | Cons | Pros | Cons |
Works on bare-metal, VMs or cloud-managed platforms | New deployment solution for management and installation | Easy customization with Ansible | Installation takes long time because Ansible works sequentially |
Easy to install and troubleshoot. | Support for custom Kubernetes add-ons | Hard to troubleshoot | |
Kubernetes version upgrade supports out-of-the-box | Kubernetes version upgrade required cluster reinstallation | ||
Offline installation supported | Offline installation was not supported |
In summary, RKE installer provides a more understandable installation process and its easy to troubleshoot. Also, RKE installer supports kubernetes version upgrade and offline deployment.
The Linux version of Sisense started to use RKE as a deployment tool from the L2022.1 release. Kubespray will be deprecated from the upcoming L2022.8 version.
Since Kubespray and RKE are different types of Kubernetes deployments, the only way to migrate is via reinstallation, which is described in this article. This process could be described in 4 steps:
- Create a backup of previous Kubespray environment
- Uninstall Kubespray environment
- Install Sisense with a RKE deployment
- Restore backup