Cluster Requirements

Kubernetes version

Running Akamas requires a cluster running Kubernetes version 1.23 or higher.

Resources requirements

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 needs to support up to 10 concurrent optimization studies

Resource
Requests
Limits

CPU

2.5 Cores

4.5 Cores

Memory

16 GB

18GB

Disk Space

70 GB

70 GB

Storage requirements

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.

Permissions

To work properly, Akamas needs to manage some resources inside the Namespace. For this reason, it is recommended to run Akamas in a dedicated Namespace.

To manage resources, Akamas uses a ServiceAccount bound to the application's pods, which must be created either manually by the cluster administrator or automatically by the provided Helm chart.

This snippet describes the namespaced required permissions for the service account:

- apiGroups: ["batch"]
  resources:
    - jobs
  verbs: ["get", "list", "create", "delete", "patch", "update"]
- apiGroups: [""]
  resources:
    - configmaps
  verbs: ["get", "list", "create", "delete", "patch", "update"]
- apiGroups: [""]
  resources:
    - pods
  verbs: ["get", "list", "patch", "update", "watch"]
- apiGroups: [""]
  resources:
    - pods/log
  verbs: ["get"]
- apiGroups: [""]
  resources:
    - secrets
  verbs:
    - get
    - create
    - patch

Networking

Networking requirements depend on how users interact with Akamas. Services can be exposed via Ingress, LoadBalancers, NodePorts, or using kubectl as a proxy. Refer to Accessing Akamas for a more detailed description of the available options.

Last updated