GCP Setup

How to set up Wallaroo Community Edition in Google Cloud Platform

This guide is targeted towards system administrators and data scientists who want to work with the easiest, fastest, and free method of running your own machine learning models.

A typical installation of Wallaroo Community Edition follows this process:

StepDescription   Average Setup Time   
Download LicenseDownload or redownload the Wallaroo Community Edition license.5 minutes
Set Up EnvironmentSet up the cloud environment hosting the Wallaroo instance.15 minutes
Install WallarooInstall Wallaroo into a prepared environment15-20 minutes

Download License

The first step to installing Wallaroo CE is to set up your Wallaroo Community Edition Account at the web site https://portal.wallaroo.community. This process typically takes about 5 minutes.

Registration Portal

Once you’ve submitted your credentials, you’ll be sent an email with a link to your license file.

Invitation Email

Follow the link and download your license file. Store it in a secure location.

Download license

Redownload License

If your license is misplaced or otherwise lost, it can be downloaded again later from the same link, or by following the registration steps again to be provided with a link to your license file.

Setup GCP Environment for Wallaroo

The following instructions are made to assist users set up their Google Cloud Platform (GCP) Kubernetes environment for running Wallaroo. These represent a recommended setup, but can be modified to fit your specific needs. In particular, these instructions will provision a GKE cluster with 32 CPUs in total. Please ensure that your project’s resource limits support that.

  • Quick Setup Guide: Download a bash script to automatically set up the GCP environment through the Google Cloud Platform command line interface gcloud.
  • Manual Setup Guide: A list of the gcloud commands used to create the environment through manual commands.

The following video demonstrates the manual guide:

GCP Prerequisites

Organizations that wish to run Wallaroo in their Google Cloud Platform environment must complete the following prerequisites:

GCP Cluster Recommendations

The following recommendations will assist in reducing the cost of a cloud based Kubernetes Wallaroo cluster.

  • Turn off the cluster when not in use. A GCP Google Kubernetes Engine (GKE) cluster can be turn off when not in use, then turned back on again when needed. If organizations adopt this process, be aware of the following issues:

    • IP Address Reassignment: The load balancer public IP address may be reassigned when the cluster is restarted by the cloud service unless a static IP address is assigned. For more information in Google Cloud Platform see the Configuring domain names with static IP addresses user guide.
  • Assign to a Single Availability Zone: Clusters that span multiple availability zones may have issues accessing persistent volumes that were provisioned in another availability zone from the node when the cluster is restarted. The simple solution is to assign the entire cluster into a single availability zone. For more information in Google Cloud Platform see the Regions and zones guide.

    The scripts and configuration files are set up to create the GCP environment for a Wallaroo instance are based on a single availability zone. Modify the script as required for your organization.

Standard Setup Variables

The following variables are used in the Quick Setup Script and the Manual Setup Guide. Modify them as best fits your organization.

Variable NameDefault ValueDescription
WALLAROO_GCP_PROJECTwallaroo-ceThe name of the Google Project used for the Wallaroo instance.
WALLAROO_CLUSTERwallaroo-ceThe name of the Kubernetes cluster for the Wallaroo instance.
WALLAROO_GCP_REGIONus-central1The region the Kubernetes environment is installed to. Update this to your GCP Computer Engine region.
WALLAROO_NODE_LOCATIONus-central1-fThe location the Kubernetes nodes are installed to. Update this to your GCP Compute Engine Zone.
WALLAROO_GCP_NETWORK_NAMEwallaroo-networkThe Google network used with the Kubernetes environment.
WALLAROO_GCP_SUBNETWORK_NAMEwallaroo-subnet-1The Google network subnet used with the Kubernetes environment.
WALLAROO_GCP_MACHINE_TYPEe2-standard-8Recommended VM size per GCP node.
WALLAROO_CLUSTER_SIZE4Number of nodes installed into the cluster. 4 nodes will create a 32 core cluster.

Quick Setup Script

A sample script is available here, and creates a Google Kubernetes Engine cluster ready for use with Wallaroo Community Edition. This script requires the prerequisites listed above, and uses the variables as listed in Standard Setup Variables.

The following script is available for download: wallaroo_community_gcp_install.bash

The following steps are geared towards a standard Linux or macOS system that supports the prerequisites listed above. Modify these steps based on your local environment.

  1. Download the script above.

  2. In a terminal window set the script status as execute with the command chmod +x bash wallaroo_community_gcp_install.bash.

  3. Modify the script variables listed above based on your requirements.

  4. Run the script with either bash wallaroo_community_gcp_install.bash or ./wallaroo_community_gcp_install.bash from the same directory as the script.

    GCP Quick Setup Script

Manual Setup Guide

The following steps are guidelines to assist new users in setting up their GCP environment for Wallaroo. Feel free to replace these with commands with ones that match your needs.

See the Google Cloud SDK for full details on commands and settings.

The commands below are set to meet the prerequisites listed above, and uses the variables as listed in Standard Setup Variables. Modify them as best fits your organization’s needs.

Set Variables

The following are the variables used in the environment setup process. Modify them as best fits your organization’s needs.

WALLAROO_GCP_PROJECT=wallaroo-ce
WALLAROO_CLUSTER=wallaroo-ce
WALLAROO_GCP_REGION=us-central1
WALLAROO_NODE_LOCATION=us-central1-f
WALLAROO_GCP_NETWORK_NAME=wallaroo-network
WALLAROO_GCP_SUBNETWORK_NAME=wallaroo-subnet-1
WALLAROO_GCP_MACHINE_TYPE=e2-standard-8
WALLAROO_CLUSTER_SIZE=4

Create a GCP Network

First create a GCP network that is used to connect to the cluster with the gcloud compute networks create command. For more information, see the gcloud compute networks create page.

gcloud compute networks \
create $WALLAROO_GCP_NETWORK_NAME \
--bgp-routing-mode regional \
--subnet-mode custom

Verify it’s creation by listing the GCP networks:

gcloud compute networks list

Create the GCP Wallaroo Cluster

Once the network is created, the gcloud container clusters create command is used to create a cluster. For more information see the gcloud container clusters create page.

Note that three nodes are created by default, so one more is added with the --num-nodes setting to meet the Wallaroo prerequisites. For Google GKE, containerd is enabled by default and so does not need to be specified during the setup procedure: (https://cloud.google.com/kubernetes-engine/docs/concepts/using-containerd)[https://cloud.google.com/kubernetes-engine/docs/concepts/using-containerd].

gcloud container clusters \
create $WALLAROO_CLUSTER \
--region $WALLAROO_GCP_REGION \
--node-locations $WALLAROO_NODE_LOCATION \
--machine-type $WALLAROO_GCP_MACHINE_TYPE \
--num-nodes $WALLAROO_CLUSTER_SIZE \
--network $WALLAROO_GCP_NETWORK_NAME \
--create-subnetwork name=$WALLAROO_GCP_SUBNETWORK_NAME \
--enable-ip-alias \
--cluster-version=1.23

The command can take several minutes to complete based on the size and complexity of the clusters. Verify the process is complete with the clusters list command:

gcloud container clusters list

Retrieving Kubernetes Credentials

Once the GCP cluster is complete, the Kubernetes credentials can be installed into the local administrative system with the the gcloud container clusters get-credentials (https://cloud.google.com/sdk/gcloud/reference/container/clusters/get-credentials) command:

gcloud container clusters \
get-credentials $WALLAROO_CLUSTER \
--region $WALLAROO_GCP_REGION

To verify the Kubernetes credentials for your cluster have been installed locally, use the kubectl get nodes command. This will display the nodes in the cluster as demonstrated below:

kubectl get nodes
NAME                                         STATUS   ROLES    AGE   VERSION
gke-wallaroo-ce-default-pool-863f02db-7xd4   Ready    <none>   39m   v1.21.6-gke.1503
gke-wallaroo-ce-default-pool-863f02db-8j2d   Ready    <none>   39m   v1.21.6-gke.1503
gke-wallaroo-ce-default-pool-863f02db-hn06   Ready    <none>   39m   v1.21.6-gke.1503
gke-wallaroo-ce-default-pool-3946eaca-4l3s   Ready    <none>   39m   v1.21.6-gke.1503

Troubleshooting

  • What does the error ‘Insufficient project quota to satisfy request: resource “CPUS_ALL_REGIONS”’ mean?

Make sure that the Compute Engine Zone and Region are properly set based on your organization’s requirements. The instructions above default to us-central1, so change that zone to install your Wallaroo instance in the correct location.

In the case of the script, this would mean changing the region and location from:

WALLAROO_GCP_REGION=us-central1
WALLAROO_NODE_LOCATION=us-central1-f
WALLAROO_GCP_REGION={Your Region}
WALLAROO_NODE_LOCATION={Your Location}

Install Wallaroo Community

Wallaroo Community Edition can be installed into a Kubernetes cloud environment, or into a Kubernetes environment that meets the Wallaroo Prerequisites Guide. Organizations that use the Wallaroo Community Edition AWS EC2 Setup procedure do not have to set up a Kubernetes environment, as it is already configured for them.

If the prerequisites are already configured, jump to Install Wallaroo to start installing.

This video demonstrates that procedure:

The procedure assumes at least a basic knowledge of Kubernetes and how to use the kubectl and kots version 1.91.3 applications.

Prerequisites

Local Software Requirements

Before starting, verify that all local system requirements are complete as detailed in the Wallaroo Community Edition Local System Prerequisites guide:

  • kubectl: This interfaces with the Kubernetes server created in the Wallaroo environment.

    • For Kots based installs:
      • kots Version 1.107.2
    • Cloud Kubernetes environment has been prepared.
    • You have downloaded your Wallaroo Community Edition License file.

    Kubectl and Kots Installation

    The following software is required as part of the installation process.

    • kubectl: This interfaces with the Kubernetes server created in the Wallaroo environment.
    • kots Version: Used to manage software installed in a Kubernetes environment.

    To install kubectl, see the kubectl Install Tools instructions.

    Install kots with the following process. This assumes using an operating system like macOS or Linux; for other operating systems, see the kots documentation.

    1. Run the following script and provide your password for the sudo based commands when prompted.

      curl https://kots.io/install/1.107.2 | REPL_USE_SUDO=y bash
      
    2. Verify kots was installed with the following command:

      kubectl kots version
      

      It should return results similar to the following:

      Replicated KOTS 1.107.2
      

    For instructions on updating the kots version for the Wallaroo Community Edition installation, see Updating KOTS.

    Kubectl and Kots Installation

    The following software is required as part of the installation process.

    • kubectl: This interfaces with the Kubernetes server created in the Wallaroo environment.
    • kots Version: Used to manage software installed in a Kubernetes environment.

    To install kubectl, see the kubectl Install Tools instructions.

    Install kots with the following process. This assumes using an operating system like macOS or Linux; for other operating systems, see the kots documentation.

    1. Run the following script and provide your password for the sudo based commands when prompted.

      curl https://kots.io/install/1.107.2 | REPL_USE_SUDO=y bash
      
    2. Verify kots was installed with the following command:

      kubectl kots version
      

      It should return results similar to the following:

      Replicated KOTS 1.107.2
      

    For instructions on updating the kots version for the Wallaroo Community Edition installation, see Updating KOTS.

    Install Wallaroo

    The environment is ready, the tools are installed - let’s install Wallaroo! The following will use kubectl and kots through the following procedure:

    1. Install the Wallaroo Community Edition using kots install wallaroo/ce, specifying the namespace to install. For example, if wallaroo is the namespace, then the command is:

      kubectl kots install wallaroo/ce --namespace wallaroo
      
    2. Wallaroo Community Edition will be downloaded and installed into your Kubernetes environment in the namespace specified. When prompted, set the default password for the Wallaroo environment. When complete, Wallaroo Community Edition will display the URL for the Admin Console, and how to end the Admin Console from running.

      • Deploying Admin Console
      • Creating namespace ✓
      • Waiting for datastore to be ready ✓
          Enter a new password to be used for the Admin Console: •••••••••••••
        • Waiting for Admin Console to be ready ✓
      
      • Press Ctrl+C to exit
      • Go to http://localhost:8800 to access the Admin Console
      

    Wallaroo Community Edition will continue to run until terminated. To relaunch in the future, use the following command:

    kubectl kots admin-console --namespace wallaroo
    

    Initial Configuration and License Upload Procedure

    Once Wallaroo Community Edition has been installed for the first time, we can perform initial configuration and load our Wallaroo Community Edition license file through the following process:

    1. If Wallaroo Community Edition has not started, launch it with the following command:

      ❯ kubectl kots admin-console --namespace wallaroo
        • Press Ctrl+C to exit
        • Go to http://localhost:8800 to access the Admin Console
      
    2. Enter the Wallaroo Community Edition Admin Console address into a browser. You will be prompted for the default password as set in the step above. Enter it and select Log in.

      Wallaroo Admin Console Initial Login
    3. Upload your license file.

      Wallaroo Admin Upload License
    4. The Configure Wallaroo Community page will be displayed which allows you to customize your Wallaroo environment. For now, scroll to the bottom and select Continue. These settings can be customized at a later date.

    5. The Wallaroo Community Edition Admin Console will run the preflight checks to verify that all of the minimum requirements are met. This may take a few minutes. If there are any issues, Wallaroo can still be launched but may not function properly. When ready, select Continue.

      Wallaroo Admin Preflight Successful
    6. The Wallaroo Community Edition Dashboard will be displayed. There may be additional background processes that are completing their setup procedures, so there may be a few minute wait until those are complete. If everything is ready, then the Wallaroo Dashboard will show a green Ready.

      Wallaroo Admin Admin Ready
    7. You will receive an email invitation for the email address connected to this URL with a temporary password and a link to this Wallaroo instance’s URL. Either enter the URL for your Wallaroo instance or use the link in the email.

    8. To login to your new Wallaroo instance, enter the email address and temporary password associated with the license.

      Wallaroo Initial Login

    With that, Wallaroo Community Edition is launched and ready for use! You can end the Admin Console from your terminal session above. From this point on you can just use the Wallaroo instance URL.

    Now that your Wallaroo Community Edition has been installed, let’s work with some sample models to show off what you can do. Check out either the Wallaroo 101 if this is your first time using Wallaroo, or for more examples of how to use Wallaroo see the Wallaroo Tutorials.

    Troubleshooting