Skip to main content

kubernetes

Kubernetes Deployment​

This guide provides detailed instructions for deploying evoML on a Kubernetes cluster.

Requirements​

Supported Kubernetes Clusters​

evoML supports deployment on the following Kubernetes platforms:

Cloud Platforms:

  1. Amazon Elastic Kubernetes Service (EKS): Managed Kubernetes service on AWS.
  2. Azure Kubernetes Service (AKS): Managed Kubernetes service on Azure.
  3. Google Kubernetes Engine (GKE): Managed Kubernetes service on Google Cloud.
  4. Intel Developer Cloud: Kubernetes environment on Intel hardware for development and testing.
  5. Red Hat OpenShift: Enterprise Kubernetes platform with integrated developer tools.

On-Premise Solutions:

  1. kubeadm: Tool for bootstrapping a Kubernetes cluster.
  2. K3s: Lightweight Kubernetes distribution, suitable for edge and IoT deployments. (Use with k3d for local development).
  3. MicroK8s: Single-package Kubernetes for developers, IoT, and edge.
  4. OKD: Community distribution of Kubernetes that powers Red Hat OpenShift.

Hardware Requirements​

The following hardware requirements are recommended for optimal evoML performance.

Minimum Requirements:

ResourceMinimum Requirement
CPU32 Cores x86_64 (amd64) CPU architecture
Memory64 GB of RAM
Storage400 GB (SSD recommended, HDD acceptable)

Recommended Requirements:

ResourceRecommendation
CPU64 Cores x86_64 (amd64) CPU architecture
Memory128 GB of RAM
Storage400 GB (SSD recommended, HDD acceptable)
Important Considerations:
  1. GPU Support: GPU capabilities are optional for basic evoML operation. However, for accelerated model training and inference, we recommend an NVIDIA Pascal or newer GPU with a compute capability of 6.0 or higher.
  2. Operating System: The Kubernetes cluster can be deployed on any Linux-based distribution.

Kubernetes Environment Validation​

Before deploying evoML, it's essential to verify that your Kubernetes environment is properly configured. We provide a validation script to assist with this process. Please contact TurinTech support for access to the script and detailed instructions.

Accessing evoML Images​

evoML utilizes both publicly available and private Helm charts for configuration. Publicly available charts are primarily based on Bitnami charts. In-house Helm charts are used for core evoML components.

The required container images are:

  • evoML Core Components: A private image containing the core evoML functionality.
  • Secondary Services: Publicly available images for supporting services required by evoML.

The following table lists the publicly available services and their corresponding image details:

NameRegistryProviderVersion
MongoDBDocker HubBitnami7.0.5-debian-11-r5
MinIODocker HubBitnami2024.1.29-debian-11-r0
PostgreSQLDocker HubBitnami15.4.0-debian-11-r44
RabbitMQDocker HubBitnami3.12.12-debian-11-r7
RayDocker HubRayproject2.9.3-py310-cpu
Nginx API GatewayDocker HubBitnami1.9.5-debian-11-r5
Kafka/RedpandaDocker HubRedpandadatav23.3.4
RedisDocker HubBitnami7.2.4-debian-11-r2
API CompanionDocker HubTransloaditlatest
NFS Storageregistry.k8s.iosig-storagev4.0.8
Config ReloaderDocker HubStakaterv1.0.64

There are two primary methods for accessing the required evoML images:

Option 1: Docker Hub​

The evoML images are hosted on Docker Hub: https://hub.docker.com/?namespace=turintech.

To access the private evoML image, you must sign in to your Docker Hub account with the credentials provided by TurinTech.

Option 2: Private Image Registry (Air-Gapped Environments)​

For air-gapped environments, a private image registry is required to host all necessary images. Common image registry solutions include:

  1. Sonatype Nexus
  2. JFrog Artifactory
  3. Docker Local Registry
  4. Other compatible image registries

Installation​

evoML supports installation on Kubernetes clusters with and without internet access.

Clusters with Internet Access​

  1. Obtain the evoML CLI: TurinTech will provide the evoML CLI executable via a secure method (e.g., email, SFTP).

  2. Configure Cluster Connectivity: Use the CLI to configure connectivity to your Kubernetes cluster:

    ./evoml config cluster
  3. Deploy evoML: Initiate the deployment process and provide any requested information:

    ./evoml deploy up

Clusters without Internet Access (Air-Gapped Installation)​

  1. Obtain the Tar Bundle: TurinTech will provide a single tar archive containing:

    • The evoML CLI executable.
    • All required container images.
  2. Extract the Bundle: Extract the contents of the tar archive:

    tar -xvf evoml.tar
  3. Import Images to Registry: Import the container images into your designated private image registry:

    ./evoml bundle import --dest <Registry URL> --auth

    Replace <Registry URL> with the URL of your private image registry and provide authentication credentials as prompted by the --auth flag.

  4. Configure Cluster Connectivity: Use the CLI to configure connectivity to your Kubernetes cluster:

    ./evoml config cluster
  5. Deploy evoML: Initiate the deployment process and provide any requested information:

    ./evoml deploy up