Install Required Software
Install k3s Kubernetes, kubectl, Helm 3.x, Docker (for building images), Nginx Ingress Controller, and Cert-Manager
Install Required Software
Install all required software tools needed for ORISO Platform v3.0.0 deployment. The platform uses Kubernetes (k3s) with Helm charts for deployment.
Install Docker for building container images if needed.
# Remove old versions
sudo apt remove -y docker docker-engine docker.io containerd runc
# Add Docker GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Add Docker repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Add user to docker group
sudo usermod -aG docker $USER
# Apply group change (or logout/login)
newgrp docker
# Verify Docker installation
docker --version
docker compose version
# Test Docker
docker run hello-worldVerify Docker is working: docker --version and docker compose version should show installed versions. The hello-world test should complete successfully.
You may need to log out and log back in for docker group membership to take effect, or use newgrp docker.
Install k3s, a lightweight Kubernetes distribution perfect for single-node deployments.
# Install k3s
curl -sfL https://get.k3s.io | sh -
# Wait for k3s to be ready
sudo systemctl status k3s
# Make k3s accessible to non-root user
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
# Setup kubeconfig for current user
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
# Verify k3s installation
sudo k3s kubectl get nodesExpected output should show your node with status Ready and roles control-plane,master:
NAME STATUS ROLES AGE VERSION
oriso-platform Ready control-plane,master 1m v1.x.xInstall kubectl, the Kubernetes command-line tool.
# Install kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl
# Verify kubectl
kubectl version --client
# Test kubectl with k3s
kubectl get nodes
kubectl get pods --all-namespacesVerify kubectl can connect to k3s: kubectl get nodes should show your node.
Install Helm 3.x for managing Kubernetes applications. Helm is REQUIRED for ORISO Platform deployment.
# Install Helm 3.x
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Verify Helm
helm version
# Add required Helm repos
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo add signoz https://charts.signoz.io
helm repo updateVerify Helm installation: helm version should show version 3.x.x. Helm is required for deploying the ORISO Platform umbrella chart.
Install Nginx Ingress Controller for external access to services.
# Install Nginx Ingress Controller
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.service.type=LoadBalancer
# Wait for Ingress Controller to be ready
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s
# Verify
kubectl get pods -n ingress-nginxVerify Ingress Controller is running: kubectl get pods -n ingress-nginx should show the controller pod in Running state.
Install Cert-Manager for automatic TLS certificate management with Let's Encrypt.
# Install cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml
# Wait for cert-manager to be ready
kubectl wait --for=condition=ready pod \
-l app.kubernetes.io/instance=cert-manager \
-n cert-manager \
--timeout=300s
# Verify
kubectl get pods -n cert-managerVerify cert-manager is running: kubectl get pods -n cert-manager should show cert-manager pods in Running state.
After cert-manager is installed, you'll create a ClusterIssuer in the Kubernetes Setup step.
Install database clients and utility tools for managing ORISO Platform services.
# Install MySQL client (for MariaDB)
sudo apt install -y mysql-client
# Install MongoDB client
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-mongosh
# Install Redis client
sudo apt install -y redis-tools
# Install tree (useful for directory viewing)
sudo apt install -y treeVerify tools are installed:
mysql --versionmongosh --versionredis-cli --version
Verification
After completing all installation steps, verify all tools are working:
# Check Docker
docker --version && docker compose version
# Check Kubernetes
kubectl version --client
kubectl get nodes
# Check k3s service
sudo systemctl status k3s
# Check database clients
mysql --version
mongosh --version
redis-cli --versionTroubleshooting
k3s Not Starting
Check k3s logs:
sudo journalctl -u k3s -fVerify swap is disabled (required for k3s):
free -hkubectl Can't Connect
Verify kubeconfig:
cat ~/.kube/configCheck k3s API server:
sudo systemctl status k3sDocker Permission Denied
Ensure you're in the docker group:
groups | grep dockerIf not, log out and log back in, or use:
newgrp dockerNext Steps
- Clone ORISO Repositories - Transfer repositories to server
- Setup Kubernetes - Verify k3s and create namespace