Skip to main content

On-Premises Deployment Guide

This guide provides detailed instructions for deploying IOMETE on-premises within a Kubernetes environment, ensuring you have a seamless setup process.

Essential Requirements Before You Start

Before initiating the deployment, ensure your system meets the following prerequisites:

  • Kubernetes Cluster: Your cluster should include at least one data node with the following specifications:
    • Minimum Specs for Data Node: 4 CPU cores and 32GB of RAM.
    • Resource Allocation:
      • IOMETE System Node: Requires 8 CPU cores and 16GB of RAM.
      • Spark Driver: Utilizes the remaining CPU cores and memory.b v
  • Node Configuration Tips:
    • Opt for uniform node sizes to simplify management.
    • Larger nodes or VMs provide improved resource efficiency.
  • Object Storage: Have one of the following ready: Minio, DELL ECS, IBM Cloud Object Storage, AWS S3, Azure Blob Storage, or Google Cloud Storage.
  • Necessary Tools:
    • kubectl for cluster interaction.
    • helm for package management.
    • aws cli for object storage connectivity.

Deployment Steps

Ensure you're targeting the right Kubernetes cluster with kubectl and have the necessary repository cloned.

Create namespace for IOMETE

A dedicated namespace for IOMETE is recommended for better organization. Create it using the following command:

kubectl create namespace iomete-system

# Label the namespace for IOMETE
kubectl label namespace iomete-system iomete.com/managed=true
tip

Technically, you can deploy IOMETE in any namespace. If you choose to deploy in a different namespace, ensure you use the correct namespace in the following steps.

Object Storage (MinIO)

If you need an object storage system, consider deploying MinIO, object storage solution. Follow the instructions here.

Deploying Metadata Database (PostgreSQL)

For metadata storage, you need a PostgreSQL database. Please follow the instructions here.

Add IOMETE Helm Repository

Add the IOMETE helm repository for access to necessary charts:

helm repo add iomete https://chartmuseum.iomete.com
helm repo update

Install CRDs

Required file: iomete-crds.yaml

Require Kubernetes Admin Access

Admin permission required to install the command below as it installs cluster-level objects.

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/iomete-crds.yaml

kubectl apply -f iomete-crds.yaml

Create Service Account and Role

Required file: service-account.yaml

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/service-account.yaml

kubectl apply -n iomete-system -f service-account.yaml

Generating webhook certificates

Required file: gencerts.sh

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/gencerts.sh
chmod +x gencerts.sh

./gencerts.sh -n iomete-system -s spark-operator-webhook -r spark-operator-webhook-certs

# `spark-operator-webhook.yaml` file will be generated by the script above
kubectl apply -n iomete-system -f spark-operator-webhook.yaml
Require Kubernetes Admin Access

The generated file spark-operator-webhook.yaml contains cluster-level objects. Admin permission required to apply the last command above.

Launching IOMETE Data Plane

See the IOMETE Data Plane Enterprise Helm for more details about available configurations. See here for the values.yaml

Required file: example-data-plane-values.yaml

tip

example-data-plane-values.yaml is a sample configuration file. You can customize it according to your requirements.

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/on-prem/example-data-plane-values.yaml

# helm repo update iomete
helm upgrade --install -n iomete-system data-plane \
iomete/iomete-data-plane-enterprise \
-f example-data-plane-values.yaml

Configure ISTIO Ingress Gateway

Please follow the Configure ISTIO Ingress Gateway to configure the Ingress Gateway for IOMETE Data Plane to be able to access the UI.