•Kubernetes cluster
•CLI tool
•Kubectl command-line tool
•Kubernetes Cluster: You need an existing Kubernetes cluster (version 1.30 or higher is recommended). The cluster must be properly configured and accessible. We recommend using a managed Kubernetes service such as AKS, EKS, or GKE.
While a self-hosted Kubernetes cluster is also generally supported, please note that we cannot provide infrastructure-related support for self-hosted environments.
•Ingress Controller: An ingress controller must be installed and running in your Kubernetes cluster. The ingress controller manages external access to the services in your cluster, typically through HTTP and HTTPS. We recommend using the NGINX Ingress Controller.
•TLS Certificate: The cluster should have a TLS certificate configured for secure communication. This certificate is used by the ingress controller to serve HTTPS traffic. Ensure that the certificate is properly issued and managed, either through a certificate authority or using tools like cert-manager for automated certificate management.
•Node Pool Hardware Recommendations, as described in the sections below.
Your Kubernetes cluster must meet the following total resource requirements:
Resource Type |
Total Required |
---|---|
CPU Requests |
2.8 vCPUs |
CPU Limits |
8.4 vCPUs |
Memory Requests |
4 GiB |
Memory Limits |
10 GiB |
Storage |
44 GiB |
The storage requirements depend on the specific configuration and may grow over time.
The following table details the resource requirements for each Network Locator microservice:
Microservice |
CPU Requests |
CPU Limit |
Requests RAM |
Limit RAM |
PVC? |
K8s Resource Type |
Base Image |
---|---|---|---|---|---|---|---|
network-locator-api-gateway |
500m |
1500m |
1024Mi |
2048Mi |
no |
Deployment |
Ubuntu 24 |
network-locator-process-manager |
200m |
1200m |
128Mi |
512Mi |
yes |
StatefulSet |
RHEL UBI 9 (Micro) |
network-locator-history |
50m |
300m |
64Mi |
128Mi |
no |
Deployment |
RHEL UBI 9 (Micro) |
network-locator-storage |
50m |
100m |
64Mi |
128Mi |
yes |
StatefulSet |
RHEL UBI 9 (Micro) |
network-locator-config |
50m |
100m |
64Mi |
128Mi |
no |
Deployment |
RHEL UBI 9 (Micro) |
network-locator-synchronization |
50m |
120m |
32Mi |
64Mi |
no |
Deployment |
RHEL UBI 9 (Micro) |
network-locator-cockpit |
10m |
100m |
16Mi |
32Mi |
no |
Deployment |
Busybox |
network-locator-client |
10m |
100m |
16Mi |
32Mi |
no |
Deployment |
Busybox |
network-locator-admin |
30m |
200m |
16Mi |
32Mi |
no |
Deployment |
nginx |
network-locator-portal-proxy |
50m |
200m |
64Mi |
128Mi |
no |
Deployment |
Caddy |
All microservices are configured to run without root access for enhanced security.
The default CPU and memory requests and limits are defined in the Helm chart, but you can easily override them by specifying custom values in your values.yaml file.
The following table details the resource requirements for external chart components:
Chart |
CPU Requests |
CPU Limit |
Requests RAM |
Limit RAM |
Storage Size |
PVC? |
Storage Type |
K8s Resource Type |
Base Image |
---|---|---|---|---|---|---|---|---|---|
keycloak |
400m |
1000m |
512Mi |
1024Mi |
- |
no |
- |
StatefulSet |
Debian 12 |
keycloak-postgresql |
300m |
600m |
512Mi |
1024Mi |
8Gi |
yes |
Block (Backed with SSD) |
StatefulSet |
Debian 12 |
mongodb |
300m |
1000m |
512Mi |
2048Mi |
8Gi |
yes |
Block (Backed with SSD) |
StatefulSet |
Debian 12 |
rabbitmq |
200m |
375m |
256Mi |
384Mi |
8Gi |
yes |
Block (Backed with SSD) |
StatefulSet |
Debian 12 |
zeebe-gateway |
250m |
500m |
256Mi |
512Mi |
- |
no |
- |
Deployment |
Ubuntu 24 |
zeebe |
300m |
1000m |
250Mi |
2048Mi |
10Gi |
yes |
Block (Backed with SSD) |
StatefulSet |
Ubuntu 24 |
Components requiring persistent storage:
Component |
Storage Size |
Access Mode |
Storage Type |
Comment |
---|---|---|---|---|
network-locator-process-manager |
2Gi |
ReadWriteOnce/ReadWriteMany* |
File (e.g. NFS) |
- |
network-locator-storage |
8Gi |
ReadWriteOnce/ReadWriteMany* |
File (e.g. NFS) |
This persistent volume stores ZIP archives of locate requests. Its size should be planned based on the expected throughput and archive size, as it will continuously grow over time. |
keycloak-postgresql |
8Gi |
ReadWriteOnce |
Block (Backed with SSD) |
- |
mongodb |
8Gi |
ReadWriteOnce |
Block (Backed with SSD) |
- |
rabbitmq |
8Gi |
ReadWriteOnce |
Block (Backed with SSD) |
- |
zeebe |
10Gi |
ReadWriteOnce |
Block (Backed with SSD) |
- |
Your cluster must also have storage classes that support:
•File Storage (e.g. NFS): For Network Locator services
•Block Storage (SSD-backed): For database components
By default, the Network Locator Helm chart deploys each microservice with a single replica (replicaCount: 1).
In this case, a ReadWriteOnce (RWO) volume is sufficient for all services. If you scale a service horizontally by increasing replicas, multiple pods may need to mount the same volume across nodes, requiring ReadWriteMany (RWX) access for the process-manager and storage service.
These are considered to be the minimum recommended requirements. Production systems might have higher requirements depending on the actual load and performance needs.
Depending on where your Kubernetes cluster is hosted you might need a cli tool to communication with the cluster. For instance, for AKS (Azure Kubernetes Service) you would typically use `az`. This is a command-line interface tool that allows you to manage and interact with Azure resources and services from the command line, streamlining tasks such as provisioning, configuring, and monitoring Azure services.
•Install az: Follow the installation guide specific to your operating system from the official Azure documentation.
Kubectl is the Kubernetes command-line tool used to interact with your Kubernetes cluster. It is essential for managing cluster resources and debugging applications.
1.Install kubectl: Follow the installation guide specific to your operating system from the official Kubernetes documentation.
2.Configure kubectl: Ensure kubectl is configured to communicate with your Kubernetes cluster. The configuration can be done using this example workflow (might vary slightly depending on your specific environment):
•Connect kubectl to your Kubernetes cluster (we assume AKS - the workflow might be slightly different for other cloud providers):
az login
az account set --subscription <Azure Subscription>
az aks get-credentials --resource-group <Resource containing the Kubernetes cluster> --name <Name of the Kubernetes cluster>
•Verify:
kubectl config view
kubectl config current-context
•Test
kubectl get nodes
Helm, the package manager for Kubernetes, must be installed on your local machine.
Follow the installation guide specific to your operating system from the official Helm documentation.
Our Helm charts are stored in a container registry. You must have access to our private container registry where the Network Locator chart is located.
1.Obtain credentials.
For connecting to the registry, you must provide a user name and a token. Please contact Support if you have not received your credentials.
2. Add the repository.
Use the following command to log in to the private registry:
helm registry login vertigisapps.azurecr.io