How to Install Wallaroo Enterprise on Linux
Organizations can install Wallaroo Enterprise in a single Linux virtual machine or bare-metal Linux system. The following instructions are targeted at Linux Ubuntu 20.04 distribution.
Installation Flow
A typical installation of Wallaroo Enterprise follows this flow:
- Create Environment: Create the environment to install Wallaroo that meets the system prerequisites.
- Install Wallaroo: Install Wallaroo into the target environment.
- Configure DNS: Configure DNS services and the Wallaroo instance for your organization’s use.
Prerequisites
Before starting the bare Linux installation, the following conditions must be met:
- Have a Wallaroo Enterprise license file. For more information, you can request a demonstration.
- A Linux bare-metal system or virtual machine with at least 16 cores and 64 GB RAM with Ubuntu 20.04 installed.
- 650 GB allocated for the root partition, plus 50 GB allocated per node and another 50 GB for the JupyterHub service. Enterprise users who deploy additional pipelines will require an additional 50 GB of storage per lab node deployed.
- Disable memory swapping by removing it from
/etc/fstab
. - An account with
sudo
access forroot
level commands. - DNS services for integrating your Wallaroo Enterprise instance. See the DNS Integration Guide for the instructions on configuring Wallaroo Enterprise with your DNS services.
Note that if Wallaroo is being installed into a cloud environment such as Google Cloud Platform, Microsoft Azure, Amazon Web Services, etc, then additional considerations such as networking, DNS, certificates, and other considerations must be accounted for.
Installation
These steps require the installation of Kubernetes, Kots, and Wallaroo Enterprise.
The process includes these major steps:
- Install Kubernetes
- Install Kots Version
- Copy the Kubernetes Context To Your Local System (Optional)
- Install Wallaroo Enterprise
- Connect to Your Wallaroo Enterprise Instance
Prepare Platform
Before beginning the installation, update the following services:
-
Stop and disable the
multipathd
service.sudo systemctl stop multipathd sudo systemctl disable multipathd
Install Kubernetes
To install Kubernetes on the target system, log into the Linux system and perform the following steps:
-
Verify that the Ubuntu distribution is up to date, and reboot if necessary after updating.
sudo apt update sudo apt upgrade
-
Install
curl
:sudo apt install curl
-
Start the Kubernetes installation with the following script:
curl https://kurl.sh/9398a3a | sudo bash
- If prompted with
This application is incompatible with memory swapping enabled. Disable swap to continue? (Y/n)
, replyY
.
- If prompted with
-
Create the local
.kube
configation directory:mkdir -p $HOME/.kube
-
Copy the kubernetes server configuration to the logged in user’s home directory:
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
chmod u+w $HOME/.kube/config
-
Update the user’s
.bashrc
with the KUBECONFIG settings:echo 'export KUBECONFIG=$HOME/.kube/config' >> ~/.bashrc
-
Log out, and log back in as the same user. Verify the installation was successful with the following:
kubectl get nodes
It should return results similar to the following:
NAME STATUS ROLES AGE VERSION wallux Ready control-plane,master 6m26s v1.23.6
Install Kots
Install kots
with the following process.
-
Run the following script and provide your password for the
sudo
based commands when prompted.curl https://kots.io/install/1.91.3 | bash
-
Verify
kots
was installed with the following command:kubectl kots version
It should return results similar to the following:
Replicated KOTS 1.91.3
Copy the Kubernetes Context To Your Local System
The following process will copy the Kubernetes context to your local system. This assumes that kubectl
and kots
are installed on the local system.
-
Retrieve the contents of
$KUBECONFIG
in the example this is$HOME/.kube/config
. For example, thecat
command will display the following:cat $KUBECONFIG apiVersion: v1 clusters: - cluster: certificate-authority-data: {Your certificate data here} server: https://{IP Address of your Linux system}:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: {Your client-certificate data} client-key-data: {Your client key data}
-
If this will be the only Kubernetes environment that you’ll be interacting with, copy the contents into your local
$KUBECONFIG
file. -
If there are multiple Kubernetes environments, import the
cluster
,context
anduser
section into the relative sections of your file. For example, the following$KUBECONFIG
settings would be updated to include the new Kubernetes environment:Old configuration:
apiVersion: v1 clusters: - cluster: certificate-authority-data: {Cluster authority data}} server: https://104.197.45.170 name: my-old-cluster - cluster: certificate-authority-data: {Your certificate data here} server: https://{IP Address of your Linux system}:6443 name: kubernetes contexts: - context: cluster: my-old-cluster user: my-old-user name: my-old-context current-context: my-old-context kind: Config preferences: {} users: - name: my-old-user user: client-certificate-data: {old certificate data} client-key-data: {old key data}
New configuration:
apiVersion: v1 clusters: - cluster: certificate-authority-data: {Cluster authority data}} server: https://104.197.45.170 name: my-old-cluster contexts: - context: cluster: my-old-cluster user: my-old-user name: my-old-context - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: my-old-context kind: Config preferences: {} users: - name: my-old-user user: client-certificate-data: {old certificate data} client-key-data: {old key data} - name: kubernetes-admin user: client-certificate-data: {Your client-certificate data} client-key-data: {Your client key data}
-
To change to the new Kubernetes context so
kubectl
andkots
commands default to that context, use thekubectl config use-context
command. For example:kubectl config use-context kubernetes-admin@kubernetes
Install Wallaroo Enterprise
Wallaroo Enterprise can be installed either through an interactive process or through the command line through the following commands. In either case, the hardware prerequisites as detailed in the Wallaroo Local System Prerequisites Guide must be met.
Interactive Installation
To install Wallaroo Enterprise through an interactive web interface into the namespace wallaroo
, use the following kots
command:
kubectl kots install wallaroo/ea -n wallaroo
Automated Installation
To automatically install Wallaroo into the namespace wallaroo
, specify the administrative password and the license file during the installation as follows:
kubectl kots install wallaroo/ea -n wallaroo --license-file {License File} --shared-password {My Admin Password}
For example, for the license file myWallaroolicense.yaml
and the password snugglebunnies
, the command would be as follows:
kubectl kots install wallaroo/ea -n wallaroo --license-file myWallaroolicense.yaml --shared-password snugglebunnies
Configuration
Once installed, Wallaroo will continue to run until terminated. Wallaroo is configured using the Wallaroo Administrative Dashboard, launched during the installation process detailed above.
To relaunch the Wallaroo Administrative Dashboard and make changes or updates, use the following command:
kubectl-kots admin-console --namespace wallaroo
DNS Services
Wallaroo Enterprise requires integration into your organizations DNS services, and is completed in the next step.
Install Wallaroo
With the environment prepared, Wallaroo can now be installed.
Step | Status |
---|---|
Setup Environment | COMPLETED! |
Install Wallaroo Enterprise
|
COMPLETED! |
Integrate Wallaroo with DNS Services | Update Wallaroo post-install |