Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This page describes the requirements that should be fulfilled by the user when installing or managing an Akamas installation on Kubernetes. The software below is usually installed on the user's workstation or laptop.
Kubectl must be installed and configured to interact with the desired cluster. Refer to the official kubectl documentation to set up the client.
To interact with the Kubernetes APIs, you will need kubectl, preferably with a version matching the cluster. To check both the client and cluster versions, run the following:
Installing Akamas requires Helm 3.0 or higher. To check the version, run the following:
Akamas uses Elasticsearch to store logs and time series. When running Akamas on Kubernetes, Elasticsearch is installed automatically using the official Elasticsearch helm chart. This chart required running an init container with privileged access to set up a configuration on the Elasticsearch pod host. If running such a container is not permitted in your environment, you can add the following snippet to the akamas.yaml
file when installing Akamas to disable this feature.
This section describes how to install Akamas on a Kubernetes cluster.
Before installing Akamas, please follow these steps:
Please follow these steps to install the Akamas application:
Please also read the section on how to manage Akamas. Finally, read the relevant sections of Integrating Akamas to integrate Akamas into your specific ecosystem.
Running Akamas requires a cluster running Kubernetes version 1.24 or higher.
Akamas can be deployed in three different sizes depending on the number of concurrent optimization studies that will be executed. If you are unsure about which size is appropriate for your environment we suggest you start with the small one and upgrade to bigger ones as you expand the optimization activity to more applications.
The tables below report the required resources both for requests and limits that should be available in the cluster to use Akamas.
Small
The small tier is suited for environments that need to support up to 10 concurrent optimization studies
Resource | Requests | Limits |
---|---|---|
The cluster must provide the definition of a Storage Class so that the application installation can leverage Persistent Volume Claims to dynamically provision the volumes required to persist data.
For more information on this topic refer to Kubernetes' official documentation.
To install and run Akamas cluster level permissions are not required. This is the minimal set of namespaced rules.
Networking requirements depend on how users interact with Akamas. Services can be exposed via Ingress or using kubectl as a proxy. Refer to Accessing Akamas for a more detailed description of the available options.
Running Akamas on OpenShift requires some Helm configurations to be applied.
The installation is provided as a set of templates packaged in a chart archive managed by . Custom values are applied to ensure Akamas complies with the default restricted-v2
security context constraints.
Make sure you meet the
To proceed with the installation, OpenShift version 4.x.
The installation can be done offline and online as described in the section . Choose the one that better suits your cluster access policies.
The following snippet must be added to the akamas.yaml
to install Akamas on OpenShift.
Once the Helm command is invoked, ensure the routes have been created by running:
The output must list the Akamas routes with different paths.
The Akamas' Toolbox optional component requires privileged access to run on OpenShift.
Akamas is deployed on your Kubernetes cluster through a , and all the required images can be downloaded from the AWS ECR repository.
Two installation modes are available:
, in case the Kubernetes cluster can access the Internet.
, in case the Kubernetes cluster does not have access to the Internet or you need to use a private image registry.
Before starting the installation, make sure the are met.
If your cluster is in an air-gapped network or is unable to reach the Akamas image repository, you need to copy the required images to your private registry.
The procedure described here leverages your local environment to upload the images. Thus, to interact between the Akamas and private registry, it requires Docker to be installed and configured.
The offline installation requires you to pull the images and migrate them to your private registry. In the following command replace the chart version to download the related list of images:
Once the import is complete, you must re-tag and upload the images. Run the following snippet, replacing <REGISTRY_URL>
with the actual URL of the private registry:
This process could last several minutes, once the upload is complete, you can proceed with the next steps.
To proceed with the installation, you must create a Helm Values file, called akamas.yaml
in this guide, containing the mandatory configuration values required to customize your application. The following template contains the minimal set required to install Akamas:
Replace in the file the following placeholders:
CUSTOMER_NAME
: customer name provided with the Akamas license
ADMIN_PASSWORD
: initial administrator password
REGISTRY_URL
: the URL for the private registry used in the transfer process above
To authenticate to your private registry, you must manually create the Secret required to pull the images. If the registry uses basic authentication, you can create the credentials in the namespace by running the following command:
Otherwise, you can leverage any credential already configured on your machine by running the following command:
From a machine that can reach the endpoint, run the following command to download the chart:
The command downloads the latest version chart version as an archive named akamas-<version>.tgz
. The file can be transferred to the machine where the installation will be run. Replace akamas/akamas
with the download package in the following commands.
If you wish to see and override the values that Helm will use to install Akamas, you may execute the following command.
Now, with the configuration file you just created (and the new variables you added to override the defaults), you can start the installation with the following command:
This command will create the Akamas resources within the specified namespace. You can define a different namespace by changing the argument --namespace <your-namespace>
An example output of a successful installation is the following:
To monitor the application startup, run the command kubectl get pods
. After a few minutes, the expected output should be similar to the following:
At this point, you should be able to access the Akamas UI using the endpoint specified in the akamasBaseUrl
, and interact through the Akamas CLI with the path /api
.
Before installing the Akamas please make sure to review all the following requirements:
Before starting the installation, make sure the are met.
Akamas on Kubernetes is provided as a set of templates packaged in a chart archive managed by .
To proceed with the installation, you need to create a Helm Values file, called akamas.yaml
in this guide, containing the mandatory configuration values required to customize your application. The following template contains the minimal set required to install Akamas:
You can also download the template file running the following snippet:
Replace in the file the following placeholders:
AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
: the AWS credentials for pulling the Akamas images
CUSTOMER_NAME
: customer name provided with the Akamas license
ADMIN_PASSWORD
: initial administrator password
With the configuration file you just created (and the new variables you added to override the defaults), you can start the installation with the following command:
This command will create the Akamas resources within the specified namespace. You can define a different namespace by changing the argument --namespace <your-namespace>
An example output of a successful installation is the following:
To monitor the application startup, run the command kubectl get pods
. After a few minutes, the expected output should be similar to the following:
At this point, you should be able to access the Akamas UI using the endpoint specified in the akamasBaseUrl
, and interact through the Akamas CLI with the path /api
.
Besides the methods described in , you can use the OpenShift default ingress controller to create the required routes. Add the following snippet to the akamas.yaml
file.
Akamas on Kubernetes is provided as a set of templates packaged in a chart archive managed by .
INSTANCE_HOSTNAME
: the URL that will be used to expose the Akamas installation, for example https://akamas.k8s.example.com
when using an Ingress, or http//:localhost:9000
when using port-forwarding. Refer to for the list of the supported access methods and a reference for any additional configuration required.
This section describes how to configure the authentication to your private registry. If your registry does not require any authentication, skip directly to the .
If you haven't already, you can update your configuration file to use a different type of service to expose Akamas' endpoints. To do so, pick from the the configuration snippet for the service type of your choice, add it to the akamas.yaml
file, update the akamasBaseUrl
value, and re-run the installation command to update your Helm release.
INSTANCE_HOSTNAME
: the URL that will be used to expose the Akamas installation, for example https://akamas.k8s.example.com
when using an Ingress, or http://localhost:9000
when using port-forwarding. Refer to for the list of the supported access methods and a reference for any additional configuration required.
If you haven't already, you can update your configuration file to use a different type of service to expose Akamas' endpoints. To do so, pick from the the configuration snippet for the service type of your choice, add it to the akamas.yaml
file, update the akamasBaseUrl
value, and re-run the installation command to update your Helm release.
CPU
8 Cores
16 Cores
Memory
30 GB
30 GB
Disk Space
70 GB
70 GB
To interact with your Akamas instance, you need the UI and API Gateway to be accessible from outside the cluster.
Kubernetes offers different options to expose a service outside of the cluster. The following is a list of the supported ones, with examples of how to configure them to work in your chart release:
While changing the access mode of your Akamas installation, you must also update the value of the akamasBaseUrl
option of the Helm Values file to match the new endpoint used.
By default, Akams uses Cluster IPs for its services, allowing communication only inside the cluster. Still, you can leverage Kubectl's port-forward to create a private connection and expose any internal service on your local machine.
This solution is suggested to perform quick tests without exposing the application or in scenarios where cluster access to the public is not allowed.
Set akamasBaseUrl
to http://localhost:9000
in your Helm Values file, and install or update your Akamas deployment using the Helm command. Once the rollout is complete, open a tunnel to the UI with the following command:
As long as the port-forwarding is running, you will be able to interact with the UI through the tunnel; you can also interact through the Akamas CLI by configuring the URL http://localhost:9000/akapi
.
Refer to the official kubernetes documentation for more details about port-forwarding.
An Ingress is a Kubernetes object that provides service access, load balancing, and SSL termination to Kubernetes services.
To expose the Akamas UI through an Ingress, configure the Helm Values file by configuring akamasBaseUrl
with the host of the Ingress (e.g.: https://akamas.kube.example.com
), and by adding the snippet below:
Here is a description of the fields:
enabled
: set to true
to enable the Ingress
tls
: configure secretName
with the name of the Secret containing the TLS certificate for the hostname configured in akamasBaseUrl
. This secret must be created manually before applying the configuration (see TLS Secrets on the Kubernetes documentation) or managed by a certificate issuer configured in the namespace.
annotations
: optional, provide any additional annotation required in your deployment. If your cluster leverages any certificate issuer (such as cert-manager), you can add here the annotations required to interact with the issuer.
Re-run the install command to update the configuration. Once the rollout is complete, you will be able to access the UI using the URL specified in akamasBaseUrl
and interact with the CLI using ${akamasBaseUrl}/api
.
Refer to the official kubernetes documentation for more details on Ingresses.
You may find helpful some of the commands listed in the sections below.
By default, access to each service database is assigned to a user with randomly generated passwords. For example, to read the campaign service database password, execute the following command:
The username for the campaign service can be found in the configuration file under each service section. To read the username for the campaign service set during the installation, launch the following command:
You can connect to the campaign_service
database with the user and password above.
If you want to show all the passwords, execute this command: