General requirements#
LUNA PLATFORM is delivered in Docker containers. Docker container LP images are required for installation. An Internet connection is required to download the Docker images to the server, or the images must be downloaded to any other device and transferred to the server. Authorization to the VisionLabs Docker registry is required to download Docker images.
LUNA PLATFORM can be deployed:
- by manually launching containers using Docker
- using the Docker Compose script
- in a Kubernetes cluster
The distribution package contains examples of the Docker Compose script and Helm charts for each service.
Running LUNA PLATFORM has been tested on the following versions of the above software:
- Docker: 25.0.3
- Docker Compose: 2.24.6
- Kubernetes: 1.27
Testing in a Kubernetes cluster was performed using
ingress-nginx-controller:v1.10.0
.Testing was also performed in Minikube version 1.32. Minikube is for local testing and development only. In the production loop, you need to use a Kubernetes cluster.
It is not guaranteed to work with other versions of the above software.
Using the plugin mechanism requires developing scripts that take into account the syntax and functionality provided by Python 3.11.
LUNA PLATFORM services can be run on any OS that supports Docker. Running LUNA PLATFORM Docker containers is officially tested on CentOS 7/8. All procedures in the installation manual are described for CentOS 7. Running on other operating systems may have some peculiarities not described in this documentation.
Docker containers of LUNA PLATFORM services use CentOS 8.
LUNA PLATFORM services can use both CPU and GPU processors. When deployed in a Kubernetes cluster, resource settings can be set in the Helm charts provided.
See "Resource consumption by services" in the administrator manual for more information about resource consumption.
Processors requirements#
The configuration below guarantees software package minimum power operating and cannot be used for the production system. System requirements for the production system are calculated based on the intended system load.
CPU#
The following minimum system requirements should be met for the LUNA PLATFORM software package installation:
-
CPU Intel, 4 physical cores minimum with clock frequency 2.0 GHz or higher. AVX2 instruction set support is required for CPU.
-
RAM DDR3 (DDR4 recommended), 8 Gb or higher.
-
Free storage size must be 80 Gb or higher.
The amount of free space required on a disc or S3-like storage directly depends on the size of the database and Image Store buckets. If the database is very large, more than 80 GB may be required.
It is recommended using SSD for databases and Image Store service.
GPU#
For GPU acceleration an NVIDIA GPU is required. The following architectures are supported:
- Pascal or newer.
Compute Capability 6.1 or higher is required.
A minimum of 6GB or dedicated video RAM is required. 8 GB or more VRAM recommended.
CUDA version 11.4 must be installed where Remote SDK and Lambda (optional) service is deployed. The recommended NVIDIA driver is r470.
Important: There are some GPU-specific features for Minikube (see "Use GPU in Minikube" in Kubernetes deployment manual).
Third-party applications requirements#
The following third-party services are used by default with LUNA PLATFORM 5.
- PostgreSQL is used as a default database for Faces, Configurator, Events, Handlers, Lambda, Tasks, Admin, and Backport3 services.
You can also use the Oracle database instead of PostgreSQL for all services except the Events service. The installation and configuration of Oracle are not described in this manual.
-
Redis DB is used for Faces and Sender services.
-
InfluxDB is used for monitoring.
Balancers and other software can be used when scaling the system to provide fail-safety. The installation guide provides recommendations on launching Nginx container with a configuration file to balance requests to the API, Faces, Image Store, and Events services.
The following third-party applications versions are recommended for LP launching:
- PostgreSQL: 16
- Oracle: 21c (if used instead PostgreSQL)
- Redis: 7.2
- InfluxDB: 2.0.8-alpine
- Grafana: 8.5.20 (optional)
- Grafana Loki: 2.7.1 (optional)
- Nginx: 1.17.4-alpine (optional)
These versions were tested by VisionLabs specialists. Newer versions can be used if needed, but they are not guaranteed to work.
It is recommended to use the unzip
package to unpack the distribution. The command to download the package is given in the installation manual.
If you need to use an external database and the VLMatch function, you need to download additional dependencies described in the "External DB" section of the installation manual.
PostgreSQL, Redis, InfluxDB, Grafana and Nginx docker containers can be downloaded from the VisionLabs registry.