[AIAB-04] Architecture overview and setup
Last updated
Last updated
There are two possible architectural configurations, depending on whether you are using a dedicated cluster or running the application on Minikube inside your Akamas-in-a-box machine:
In this scenario, you are running the application on a dedicated cluster; it will require at least one node with 4 CPUs and 8 GB of RAM. Akamas will run on a dedicated VM.
In this scenario, you are running the application on a Minikube cluster installed on your Akamas-in-a-box machine; it will need at least 8 CPUs and 16 GB of RAM (e.g., c5.xlarge on AWS EC2). In the following section, Build Minikube Cluster, you will learn to install it with a single command.
In both scenarios, you will install the following applications in the cluster:
the application to tune: Online Boutique
the telemetry provider: Prometheus, which provides performance metrics of the application under optimization
the load generator: Locust, used to run the load tests
Notice that you plan to use your own cluster, please can skip this section and move on to the section Setup Online Boutique.
This section describes how to build a local Kubernetes cluster for the following Akamas optimization study. The local cluster will be installed in the Akamas-in-a-box machine, so this machine needs at least 8 CPUs and 16 GB of RAM (e.g., c5.2xlarge on AWS EC2).
Before proceeding with the installation of the Minikube cluster, please ensure that your Akamas-in-a-box host has all the following prerequisites:
Install docker (if you have installed Akamas-in-a-Box, you should have it already installed).
Install kubectl.
Install minikube (you can stop before verifying the installation).
Add your user to the docker group, if it has not been added yet, with the command: sudo usermod -aG docker $USER && newgrp docker
.
Note down your machine's public IP, as it will be used later in this guide as your CLUSTER_IP
. On Linux you can run: dig +short myip.opendns.com @resolver1.opendns.com
.
Then make sure Akamas is running. You can verify if Akamas services are up and running by executing the following command:
aside negative If you have another minikube cluster running on the same machine, you need to clean your environment with the command
minikube delete
before creating the new cluster.
At this point, you can create the Minikube cluster with a single command by leveraging the script create-minikube-cluster.sh
in the scripts
folder of the cloned repo (as described in section Download artifacts) and passing the public IP of your machine as the CLUSTER_IP
:
The command may take a few minutes, and will output the message "Cluster created" once the installation process completes correctly.
Now the cluster should be up and running. You can verify this by running any kubectl
command, such as: