Deployment over Kubernetes requires an assessment of the data center and existing services. Below are the main services:
...
Kubernetes
...
MySQL (or Postgres)
...
Info |
---|
This topic is for a deployment in a Data Center, not on a rented Cloud infrastructure, like AWS. |
The VMS and the Storage will be deployed in a Data Center over a computing cluster to make all operations fully scalable and highly available. The following services should be supported by the Data Center.
Mandatory:
Kubernetes
Object storage (S3 compatible)
Optional:
Managed Database (MySQL or Postgres)
DNS zone controller
ELK or EFK (logging, optional)
Redis (optional)
Prometheus and Grafana (monitoring, optional)
The deployment is performed using Helm Charts or YAML.
Examples of Kubernetes used in previous deployments: KubeSphere, EKS, OpenShift, K3S, and MiniCube (for testing).
VMS
The VMS is a set of micro-services deployed over Kubernetes. Kubernetes must be installed before the deployment of the VMS. Below are the micro-services and required resources.
Main micro-services and resources
Service | Cameras | VCPU | Memory | HDD (Gb) |
...
Hosting | 160 | 2 | 12 | 10 |
Web | 2000 | 2 | 6 | 10 |
Control | 4000 | 2 | 8 | 10 |
Media | 300 | 2 | 8 | 24 |
CM | 500 | 2 | 4 | 10 |
WebRTC | 2000 | 2 | 8 | 10 |
Vertically scaling services
Service | Cameras | VCPU | Memory | HDD (Gb) |
SQL DB Cluster | 2500 | 2 | 8 | 250 |
ELK Cluster | 2500 | 1 | 8 | 500 |
Turn Server | 5000 | 2 | 8 | 10 |
Backend/Postgres DB | 10000 | 2 | 8 | 10 |
Resources for 1,000
...
cameras
...
Computing and virtualization - 20 instances with 2 vCPU, 8GB each. It means we need a minimum of 40 threads = 20 cores with 160 GB of memory. It could be, for example, 1 Xeon with 28 cores (56 threads) and 256 GB. The overhead is for running Kubernetes.
...
The estimate includes a 30% overhead on virtualization:
51 VCPU
232 GB RAM
1282 GB HDD
Example of a server: Xeon Skylake with 28 cores, 56 threads, and 256 GB RAM
Storage
The storage requires S3 compatible Object Storage.
Object storage
Below are some object storage options:
Storage server, like DELL ECS EX500 series.
NAS storage, like QNAP.
General-purpose storage servers like Supermicro, Dell, or HP with object storage software such as minio, Ceph, or others.
Another source of hardware examples https://www.45drives.com/products/storinator-model-details.php
Resources for 1,000 cameras
One camera with 1Mbps and 30 days
...
Database – 2 core, 16GB RAM, 60GB storage. A database server must have an automatic backup.
Minimal datacenter requirements
...
Kubernetes - preferred Opinshift 1.28
...
Object storage - S3 compatible, like MINIO or Wasabi
...
Database - MySQL 5.7, 2 cores, 16GB
...
of retention will use approximately 350 GB of object storage. For 1,000 cameras we’ll need a storage with 350 TB capacity.
Add label