Warning
Nightly releases are generated automatically from the latest source code and are intended for experimental purposes only. These builds may contain incomplete or untested features, bugs, or security vulnerabilities, and as such, are not for production use. Users should be aware that nightly releases may cause unexpected behavior, data loss, or system instability. Use of these releases is at the user's own risk, and it is advised to have adequate backups before testing. The software is provided as is with no guarantees or support.
instant3Dhub requirements¶
Read First¶
This section contains a general overview of the resource requirements for running instant3Dhub. These specifications are based on our experience and measurements in production scenarios. Depending on your scenario, 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 kubernetes as of yet. Storage requirements are given as a minimum.
Provisioning¶
The following resources have to be provisioned to enable the cluster to run instant3Dhub:
Helm & k8s
Image Registry
Storage
Compute
Database (optional)
Kubernetes Requirements¶
Kubernetes: v1.21 (or later)
kubectl: v1.21 (or later)
helm (CLI): v3.4.0 (or later)
Node Requirements¶
In order to run instant3Dhub, the following Kubernetes node specifications are recommended:
Warning
Node specifications depend heavily on system load and the size and type of data being processed. Large, monolithic CAD structures naturally require more compute than smaller, linked structures.
Node Spec |
CPUs |
Memory |
Node Count |
---|---|---|---|
Minimum |
4 |
16GB |
1 |
Recommended |
16 |
64GB |
3 |
PostgreSQL Requirements¶
PostgreSQL: v13 (or later)
License¶
To run instant3Dhub, a license key is required. The license key is used to
automatically report billable usage metrics to Threedy. If you do not have a
license key, please request one at sales@threedy.io
.
For air-gapped environments, we recommend an on-premise license server. See Air-Gapped License Server for more information.
Image Registry¶
We encourage transferring all containers into a local self-managed image repository. To load the images into the registry you can use tools such as 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 our public registry for production deployments! We do not guarantee high availability of our registry, nor do we guarantee image availability once a version has reached EOL.
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 persistence 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 here.
These need to be adjusted for your deployment.
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. |
entrygw_volume |
2GB |
ReadWriteMany* |
Code-on-demand distribution. Fixed size. |
rabbitmq_volume |
1GB |
ReadWriteOnce |
Event / Transaction data. Fixed size. |
upload_volume |
5GB |
ReadWriteMany* |
Stores uploaded files. |
prometheus_volume |
5GB |
ReadWriteOnce |
Stores prometheus metrics. |
jaeger_volume |
5GB |
ReadWriteOnce |
Stores OpenTelemetry traces. |
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 must support this. See the official Kubernetes documentation.
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
.
Database¶
For all database purposes instant3Dhub relies on the use of PostgreSQL. instant3Dhub deploys a PostgresSQL instance as part of the default configuration. 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 enable GPU support for kubernetes, 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. In our experience, reasonably recent consumer GPUs will also work even if not listed.