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.