Please enable JavaScript to view this site.

Navigation: Requirements

Kubernetes Requirements

Prev Top Next More

Before deploying Network Locator, ensure that you have the following:

Kubernetes cluster

CLI tool

Kubectl command-line tool

 

Kubernetes Cluster

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.

Hardware Resource Requirement Summary

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.

Network Locator Services

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.

External Charts

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

Storage Configuration

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.

CLI Tool

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

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

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.

Access to the VertiGIS Container Registry

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

© 2025 VertiGIS. All rights reserved. | Privacy Center | Imprint
Documentation Version 1.5 (cfa90193)