instant3Dhub requirements#
Read First#
This section contains a general overview of the resource requirements for running the containerized instant3Dhub. These specifications are based upon measurements of average CAD Data encountered in various scenarios in the Automotive and BIM industry. Depending on the sizes of the input data, these values may need to be adjusted. As it is difficult to give a one-fits-all recommendation, we do not enforce any limits or requests in k8s as of yet. Storage requirements are given as a minimum.
Provisioning#
To following resources have to be provisioned to enable the cluster to run instant3Dhub
Helm & k8s
License Server
Image Registry
Storage
Compute
Database (optional)
K8s Requirements#
Kubernetes: v1.21
kubectl: v1.21
helm (CLI): v3.4.0
PostgreSQL Requirements#
PostgreSQL: v9.2 (Tested: 10 and 13)
Newer versions on minor levels might work, but were not tested!
License Server#
To run an instant3Dhub installation access to an instant3Dhub License Server is required. The license server is installed separately from the instant3Dhub instance and can be shared with other instant3Dhub instances. A guide on how to set up the license server can be found here.
Image Registry#
We encourage transfering all containers referenced by our Docker-Compose or Helm deploys into a local selfmanaged image repository. To load the images into the registry you can use tools like skopeo or docker. The references contain an example script to fill the local image registry.
The images of instant3Dhub are provided on a public registry: instant3Dhub-images
Warning
It is highly discouraged to use the public registry for direct access by the nodes!
If you can not use an image registry, the nodes of the cluster can also be provisioned proactively. For more information see: Pre-pulled images
Storage#
instant3Dhub requires a set of volumes for persistency and data exchange between services in the system. Kubernetes volumes need to be configured in your backend. Our helm charts come with PersistentVolumeClaims which need to be satisfied for basic functionality. Examples for PersistentVolume definitions can be found in ./reference/volumes/pv_kubectl.yml. These need to be adjusted for your deploy.
The following non ephemeral volumes are defined and required to run instant3Dhub:
Name |
Size |
accessMode |
Description |
cache_volume |
20GB |
ReadWriteMany* |
Stores the caches. Size can be configured. (grows depending on used data) |
postgres_volume |
5GB |
ReadWriteOnce |
Stores cache metadata and indices. Is 25% of the cache size. |
elastic_volume |
5GB |
ReadWriteOnce |
Log data. Currently fixed size. |
entrygw_volume |
2GB |
ReadWriteMany* |
Code-on-demand distribution. Fixed size. |
rabbitmq_volume |
1GB |
ReadWriteOnce |
Event / Transaction data. Fixed size. |
Note
If instant3Dhub is deployed on a cluster with multiple nodes some of the services require the access mode ReadWriteMany (marked with *) which means that the chosen storage provider has to have such an option. (see the official Kubernetes documentation). ReadWriteMany – the volume can be mounted as read-write by many nodes. By this method, multiple pods running on multiple nodes can use a single volume and read/write data.
Compute#
The containers have requests and limits defined in the Helm Chart. In the current version they are disabled by default and can be enabled by setting “resourceLimits.ignore: false” in the values.yaml file.
Database#
For all Database purposes instant3Dhub relies on the use of PostgreSQL. instant3Dhub deploys a PostgresSQL instance within its containers. The use of external databases is explained here.
Graphics Processing Unit#
With GPUs on the service components we can computationally support clients and allow model tracking services. Currently we only support NVIDIA GPUs.
To install GPU support for k8s we recommend using the NVIDIA GPU Operator. Following the NVIDIA guide will allow an easy installation of a variety of GPUs. Please check if the GPU of your choice is in the supported GPUs list. It is our experience however that other reasonable recent consumer GPUs also work even if not listed.