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:
- Amazon Elastic Kubernetes Service (EKS): Managed Kubernetes service on AWS.
- Azure Kubernetes Service (AKS): Managed Kubernetes service on Azure.
- Google Kubernetes Engine (GKE): Managed Kubernetes service on Google Cloud.
- Intel Developer Cloud: Kubernetes environment on Intel hardware for development and testing.
- Red Hat OpenShift: Enterprise Kubernetes platform with integrated developer tools.
On-Premise Solutions:
- kubeadm: Tool for bootstrapping a Kubernetes cluster.
- K3s: Lightweight Kubernetes distribution, suitable for edge and IoT deployments. (Use with k3d for local development).
- MicroK8s: Single-package Kubernetes for developers, IoT, and edge.
- OKD: Community distribution of Kubernetes that powers Red Hat OpenShift.
Hardware Requirements
The following hardware requirements are recommended for optimal evoML performance.
Minimum Requirements:
| Resource | Minimum Requirement |
|---|---|
| CPU | 32 Cores x86_64 (amd64) CPU architecture |
| Memory | 64 GB of RAM |
| Storage | 400 GB (SSD recommended, HDD acceptable) |
Recommended Requirements:
| Resource | Recommendation |
|---|---|
| CPU | 64 Cores x86_64 (amd64) CPU architecture |
| Memory | 128 GB of RAM |
| Storage | 400 GB (SSD recommended, HDD acceptable) |
- 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.
- 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:
| Name | Registry | Provider | Version |
|---|---|---|---|
| MongoDB | Docker Hub | Bitnami | 7.0.5-debian-11-r5 |
| MinIO | Docker Hub | Bitnami | 2024.1.29-debian-11-r0 |
| PostgreSQL | Docker Hub | Bitnami | 15.4.0-debian-11-r44 |
| RabbitMQ | Docker Hub | Bitnami | 3.12.12-debian-11-r7 |
| Ray | Docker Hub | Rayproject | 2.9.3-py310-cpu |
| Nginx API Gateway | Docker Hub | Bitnami | 1.9.5-debian-11-r5 |
| Kafka/Redpanda | Docker Hub | Redpandadata | v23.3.4 |
| Redis | Docker Hub | Bitnami | 7.2.4-debian-11-r2 |
| API Companion | Docker Hub | Transloadit | latest |
| NFS Storage | registry.k8s.io | sig-storage | v4.0.8 |
| Config Reloader | Docker Hub | Stakater | v1.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:
- Sonatype Nexus
- JFrog Artifactory
- Docker Local Registry
- Other compatible image registries
Installation
evoML supports installation on Kubernetes clusters with and without internet access.
Clusters with Internet Access
-
Obtain the evoML CLI: TurinTech will provide the evoML CLI executable via a secure method (e.g., email, SFTP).
-
Configure Cluster Connectivity: Use the CLI to configure connectivity to your Kubernetes cluster:
./evoml config cluster -
Deploy evoML: Initiate the deployment process and provide any requested information:
./evoml deploy up
Clusters without Internet Access (Air-Gapped Installation)
-
Obtain the Tar Bundle: TurinTech will provide a single tar archive containing:
- The evoML CLI executable.
- All required container images.
-
Extract the Bundle: Extract the contents of the tar archive:
tar -xvf evoml.tar -
Import Images to Registry: Import the container images into your designated private image registry:
./evoml bundle import --dest <Registry URL> --authReplace
<Registry URL>with the URL of your private image registry and provide authentication credentials as prompted by the--authflag. -
Configure Cluster Connectivity: Use the CLI to configure connectivity to your Kubernetes cluster:
./evoml config cluster -
Deploy evoML: Initiate the deployment process and provide any requested information:
./evoml deploy up