The following instructions are made to assist users set up their Amazon Web Services (AWS) environment for running Wallaroo Enterprise using AWS Elastic Kubernetes Service (EKS).
These represent a recommended setup, but can be modified to fit your specific needs.
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.
To install Wallaroo in your AWS environment based on these instructions, the following prerequisites must be met:
- Register an AWS account: https://aws.amazon.com/ and assign the proper permissions according to your organization’s needs.
- The Kubernetes cluster must include the following minimum settings:
- Nodes must be OS type Linux with using the
- Role-based access control (RBAC) must be enabled.
- Minimum of 4 nodes, each node with a minimum of 8 CPU cores and 16 GB RAM. 50 GB will be allocated per node for a total of 625 GB for the entire cluster.
- RBAC is enabled.
- Recommended Aws Machine type:
c5.4xlarge. For more information, see the AWS Instance Types.
- Nodes must be OS type Linux with using the
- Installed eksctl version 0.101.0 and above.
The following software or runtimes are required Wallaroo version 2023.2. Most are automatically available through the supported cloud providers.
|Software or Runtime||Description||Minimum Supported Version||Preferred Version(s)|
|Kubernetes||Cluster deployment management||1.23||1.23 and above|
|kubectl||Kubernetes administrative console application||1.26||1.26|
Organizations that intend to stop and restart their Kubernetes environment on an intentional or regular basis are recommended to use a single availability zone for their nodes. This minimizes issues such as persistent volumes in different availability zones, etc.
Organizations that intend to use Wallaroo Enterprise in a high availability cluster are encouraged to follow best practices including using separate availability zones for redundancy, etc.
Wallaroo can be configured with custom installations depending on your organization’s needs. The following options are available:
- Install Wallaroo to Specific Nodes: How to specify what nodes in a Kubernetes cluster to install Wallaroo to.
- Install Wallaroo with Minimum Services: How to install Wallaroo with reduced services to fit into a lower-resource environment.
- Taints and Tolerances Guide: How to configure Wallaroo for specific taints and tolerances so ensure that only Wallaroo services are running in specific nodes.
AWS Environment Setup Steps
The following steps are guidelines to assist new users in setting up their AWS environment for Wallaroo. Feel free to replace these with commands with ones that match your needs.
These commands make use of the command line tool eksctl which streamlines the process in creating Amazon Elastic Kubernetes Service clusters for our Wallaroo environment.
The following are used for the example commands below. Replace them with your specific environment settings:
- AWS Cluster Name:
Create an AWS EKS Cluster
eksctl configuration file is an example of setting up the AWS environment for a Wallaroo cluster, including the static and adaptive nodepools. Adjust these names and settings based on your organizations requirements.
This sample YAML file can be downloaded from here:
The following is based on the requirements for Wallaroo Enterprise, including support for adaptive nodepools:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: wallarooAWS region: us-east-1 version: "1.25" addons: - name: aws-ebs-csi-driver iam: withOIDC: true nodeGroups: - name: mainpool instanceType: m5.2xlarge desiredCapacity: 3 containerRuntime: containerd amiFamily: AmazonLinux2 availabilityZones: - us-east-1a - name: postgres instanceType: m5.2xlarge desiredCapacity: 1 taints: - key: wallaroo.ai/postgres value: "true" effect: NoSchedule containerRuntime: containerd amiFamily: AmazonLinux2 availabilityZones: - us-east-1a - name: engine-lb instanceType: c5.4xlarge minSize: 1 maxSize: 3 taints: - key: wallaroo.ai/enginelb value: "true" effect: NoSchedule tags: k8s.io/cluster-autoscaler/node-template/label/k8s.dask.org/node-purpose: engine-lb k8s.io/cluster-autoscaler/node-template/taint/k8s.dask.org/dedicated: "true:NoSchedule" iam: withAddonPolicies: autoScaler: true containerRuntime: containerd amiFamily: AmazonLinux2 availabilityZones: - us-east-1a - name: engine instanceType: c5.2xlarge minSize: 1 maxSize: 3 taints: - key: wallaroo.ai/engine value: "true" effect: NoSchedule tags: k8s.io/cluster-autoscaler/node-template/label/k8s.dask.org/node-purpose: engine k8s.io/cluster-autoscaler/node-template/taint/k8s.dask.org/dedicated: "true:NoSchedule" iam: withAddonPolicies: autoScaler: true containerRuntime: containerd amiFamily: AmazonLinux2 availabilityZones: - us-east-1a
Create the Cluster
Create the cluster with the following command, which creates the environment and sets the correct Kubernetes version.
eksctl create cluster -f wallaroo_enterprise_aws_install.yaml
During the process the Kubernetes credentials will be copied into the local environment. To verify the setup is complete, use the
kubectl get nodes command to display the available nodes as in the following example:
kubectl get nodes
NAME STATUS ROLES AGE VERSION ip-192-168-21-253.us-east-2.compute.internal Ready <none> 13m v1.23.8-eks-9017834 ip-192-168-30-36.us-east-2.compute.internal Ready <none> 13m v1.23.8-eks-9017834 ip-192-168-38-31.us-east-2.compute.internal Ready <none> 9m46s v1.23.8-eks-9017834 ip-192-168-55-123.us-east-2.compute.internal Ready <none> 12m v1.23.8-eks-9017834 ip-192-168-79-70.us-east-2.compute.internal Ready <none> 13m v1.23.8-eks-9017834 ip-192-168-37-222.us-east-2.compute.internal Ready <none> 13m v1.23.8-eks-9017834
With the environment prepared, Wallaroo can now be installed.
|Install Wallaroo Enterprise||Install Wallaroo into a prepared environment|
|Integrate Wallaroo with DNS Services||Update Wallaroo post-install|