IOMETE On-Premises Deployment Guide (1.19)
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 Controller: Requires 2 CPU cores and 4GB of RAM.
- Spark Driver: Utilizes the remaining CPU cores and memory.
- 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.
Hardware Recommendations
For optimal performance:
- The IOMETE controller should have 4 CPU cores and 8GB RAM.
- It's advisable to equip the data node with a minimum of 4 CPU cores and 32GB RAM.
Deployment Steps
Ensure you're targeting the right Kubernetes cluster with kubectl
and have the necessary repository cloned.
For upgrade instructions, refer to the Upgrade Guide
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
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
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
Generating webhook certificates
Required file: gencerts.sh
wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/on-prem/gencerts.sh
chmod +x gencerts.sh
./gencerts.sh -n iomete-system -s spark-operator-webhook -r spark-operator-webhook-certs
Deploying IOMETE Data Plane Base
IOMETE Data Plane Base is a base deployment for IOMETE Data Plane. It includes CRDs, Lakehouse Service Account, and Roles.
This deployment includes cluster-level objects such as CRDs and webhooks. If you do not have the necessary permissions to deploy these objects (i.e., you cannot deploy cluster-level objects), please coordinate with your Kubernetes Admins to perform this step. The Helm chart needs to be deployed by someone with the appropriate access.
See the IOMETE Data Plane Base Helm for more details about available configurations. See here for the values.yaml
helm upgrade --install -n iomete-system data-plane-base \
iomete/iomete-data-plane-base --version 1.13
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
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 --version 1.19
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.