Deployment over Kubernetes requires an assessment of the data center and existing services. Below are the main services:
Kubernetes
MySQL (or Postgres)
Object storage (S3)
DNS zone controller (optional)
ELK or EFK (logging, optional)
Prometheus and Grafana (monitoring, optional)
The deployment is performed using Helm Charts.
Examples of Kubernetes used in previous deployments: KubeSphere, EKS, OpenShift, K3S, and MiniCube (for testing).
Minimal datacenter requirements
Kubernetes - preferred Opinshift 1.28
Object storage - S3 compatible, like MINIO
Database - preferred MySQL 5.7, minimum 2 cores, 16GB
Separate VM (Jump host) - minimum 2 cores, 16GB
Hardware requirements for 1,000 ONVIF 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.
Storage – 350 TB object storage. One camera with 1Mbps and 30 days retention is 0.33TB which results in ~ 350 TB. The storage server must support an object storage interface (S3).
Database – 2 core, 16GB RAM, 60GB storage. A database server must have an automatic backup.