instant3Dhub on single node#

Read First#

This guide targets those who have neither an existing k8s cluster nor the resources to set up and manage one. While having a k8s cluster to run instant3Dhub is still a requirement, we provide tools to get all the requirements ready for you on a single Ubuntu Server (22.04). For installing on WINDOWS, please follow the instructions here

Prerequisites#

The machine where you want to run instant3Dhub should have the following requirements in order to run the system properly:

Resources#

These minimal resources are required to run instant3Dhub

  • CPU-only: CPU=4 Cores, Mem=16GB

  • with GPU: CPU=8 Cores, Mem=32GB, GPU=1 NVIDIA GPU

  • Requires at least 50 GB hard disk space for the Kubernetes system.

  • GPU-operator only works with nvidia graphics cards or NVIDIA-GPUs.

  • The GPU must be provided via “pass through” of the virtual machine (VM) or

  • The GPU is available to the Kubernetes cluster directly as hardware.

  • In the deploymend process, the driver components are downloaded and compiled in the pod.

  • If this nvidia graphics card is not supported, the pods will not start and there will be no GPU support in the Kubernetes cluster.

System#

  • “ubuntu server” optimal version 22.04 is installed

  • The system has the correct Linux kernel sources from the Ubuntu repositories.

  • If you want to use GPU support, then make sure that the nouveau driver is disabled (prerequisites-k3s.sh configures this) and that there is no other driver installed on the host system.

  • If an ufw firewall is active and configured, it is also extended by the necessary open ports.

  • You have a running instant3Dhub License Server which can be accessed from the host. For installing instant3Dhub License Server please check the documenation here.

  • Nvidia-time-slicing can be activated via the time-slicing-config. This allows the number of resource GPUs (default: 1) to be increased.

  • This is controlled via the value: replicas: 1

Please check and run the prerequisite-k3s.sh script which will reconfigure your system to meet the requirements. Please note that a restart might be required to make the changes persistent.

Installation#

For installing instant3Dhub on a single machine:

Clone the release repository

git clone http://repo.threedy.io/instant3Dhub/release.git

cd release/references/singleNode/

The script expects these env variables to be set in the setup file:

  • RELEASE_NAME: Is the name of the release to be used when deploying instant3Dhub. This can be any name of your choise. Example: instant3dhub-test. Default is: i3dhub-singlenode.

  • ENTRYPOINT: The external exposure hosts or proxies. Example: http://host-name.your-domain.com:30000. Default is: http://your-hostname:30042.

  • ENTRYPOINT_IP: The external exposure hosts, ip or proxies. Example: http://host-name.your-domain.com or http://hosts-IP-Adress. Default is: http://your-hostname.

  • REGISTRY: Is the containers registry where instant3Dhub images can be fetched. Example: hub.docker.com. Default is: images.threedy.io.

  • LICENSE_SERVER: The address of the license server. Example: http://license.threedy.io:8200. Default is empty.

  • LICENSE_KEY: Licensing takes place as an alternative via the license server within the Kubernetes cluster. The special license-server-workload is started with the key.

  • ENABLE_GPU: Set to true if your system has GPU and you want to enable them to be used by instant3Dhub visualization services. Default is false.

Please adjust these variables based on your setup.

Customize the setup file: setup-k3s. Now you can install instant3Dhub

./prerequisites-ubuntu.sh # for Ubuntu OS
./install-k3s.sh

# We need GPU support: "export ENABLE_GPU=true"
./gpu-support-k3s.sh

# It may be necessary to update the instant3dhub installation:
./update-instant3dhub-k3s.sh

# Delete installation
./uninstall-k3s.sh