Minimum System Requirements
Project Account/Subscription
IDHub can be installed and run on any Cloud or local Cluster.
Supported Deployment Modes
- Cloud Deployments (Recommended):
- Google Kubernetes Engine (GKE)
- Amazon Elastic Kubernetes Service (EKS)
- Azure Kubernetes Service (AKS)
- Local Deployments:
- MicroK8s
- KIND (for testing)
You need a project account or subscription for your chosen provider.
- For GCP: You need a Google Cloud Platform (GCP) account and a project within GCP to create a GKE cluster. Ensure that you enable Kubernetes Engine API.
- For Amazon EKS: You need an AWS account to create and manage resources, including EC2 instances for your cluster.
- For Azure Kubernetes Service (AKS): You need an Entra ID subscription to create and manage cluster resources.
Number of Nodes
Ensure that you have the recommended node configurations based on your deployment mode.
Recommended Node Configurations
Single-Node Deployment
- K8s Cluster: MicroK8s
- Minimum Node Configuration:
- vCPUs: 12
- Memory: 32 GB
- Storage: 100 GB SSD
- Total Nodes: 1
- OS: Ubuntu Server 24.04.1 LTS
Multi-Node Deployment
- K8s Cluster: MicroK8s
- Minimum Node Configuration:
- vCPUs: 4
- Memory: 16 GB
- Storage: 50-64 GB SSD
- Total Nodes: 4
- OS: Ubuntu Server 24.04.1 LTS
Managed Cloud Deployment
- K8s Cluster: GKE / EKS / AKS
- Minimum Node Configuration:
- vCPUs: 4
- Memory: 16 GB
- Storage: 50-64 GB SSD
- Total Nodes: 4
- OS: Container-Optimized OS / Ubuntu Server 24.04.1 LTS
Install MicroK8s
Installation
sudo snap install microk8s --classic --channel=1.32
sudo usermod -a -G microk8s $USER
mkdir -p ~/.kube
chmod 0700 ~/.kube
# Close & reopen session
Prerequisites for OpenEBS CAS
Ensure that iSCSI is installed and enabled on all nodes:
systemctl status iscsid
sudo systemctl enable --now iscsid
Required Add-ons
Enable necessary add-ons:
microk8s enable ingress
microk8s enable community
microk8s enable openebs
Required Applications
Install kubectl
Refer to the official Kubernetes documentation for installing kubectl
using native package management:
Install kubectl
Install helm
Follow the Helm documentation to install Helm using the APT package manager: Install Helm
Install jq
If jq
is not already installed, install it using:
sudo apt install jq
Set up kubectl
configuration for MicroK8s:
microk8s config > ~/.kube/config
Configure MicroK8s Kubectl Alias
echo "alias kubectl='microk8s kubectl'" >> ~/.bashrc && source ~/.bashrc
Final Configuration After Installation
Edit the /etc/hosts file to map 127.0.0.1 with <IDHUB_FQDN> (the URL through which the IDHub application is accessed). e.g.:
127.0.0.1 localhost idhub.companyName.com
Configure External DNS for Public Access
To access the application externally, map the external IP address of the VM to a domain using a DNS provider like Cloudflare.
Internet Connectivity Requirements
- Ensure 1Gbps bandwidth for optimal performance.
Browser Requirements
- Supported Browsers: Chrome, Firefox, Edge (latest versions).
Operating System
The operating system for your cluster can be any container-optimized OS or major Linux distribution.
OS Recommendations
- For GCP: Container-Optimized OS or Ubuntu
- For Amazon EKS: Amazon Linux, Ubuntu
- For Azure Kubernetes Service (AKS): Ubuntu
- For MicroK8s: Ubuntu Server 24.04.1 LTS