Contact sales for licence details
Email sales@nikaplanet.com about licence options and to schedule a guided deployment.
1
Plan
Node pools, storage and network.
2
Install
Guided deployment with NIKA engineers.
3
Verify
Prove each part works.
4
Operate
Scale, upgrade and fix.
1. Plan your cluster
- A Kubernetes cluster you administer, with
kubectlaccess - Separate node pools for CPU, high-memory and, if needed, GPU work (x86-64)
- Shared storage that many pods can read at once
- Ingress with TLS and a DNS name for the gateway
- Outbound access to pull images, or a mirror registry on restricted networks
- A dedicated namespace with a quota
Node pools
Label and taint each pool so nothing lands on it by accident:
Autoscaling
NIKA GeoEngine asks for pods; your node autoscaler (Cluster Autoscaler or Karpenter) supplies nodes. Set a maximum size per pool. It is your cost ceiling: at the maximum, new tasks wait rather than overspend.GPU nodes
- Install the NVIDIA driver, directly or with the NVIDIA GPU Operator.
- Install the NVIDIA device plugin so pods can request
nvidia.com/gpu. - Confirm the cluster advertises GPUs:
Shared storage
Fan-out means many pods read the same inputs at once. Provide a ReadWriteMany volume (NFS, CephFS, Amazon EFS, Google Filestore, Azure Files) or an object store (S3-compatible, GCS, Azure Blob). For raster work throughput matters more than capacity, so test with a realistic scene. Object storage also lets maps and imagery servers read results directly; see Build fullstack map processing with OnlyMapJS.Isolate the namespace
namespace.yaml
2. Install
Guided deployment. NIKA engineers deploy NIKA GeoEngine into your cluster with you, issue the install artefacts for your environment and review the configuration. This section shows the shape of the process so you can prepare.
3. Verify
1
The control plane is running
kubectl get pods --namespace geoengine: every pod is Running.2
The gateway answers over TLS
curl -sS https://<geoengine-host>/ -o /dev/null -w "%{http_code}\n": any HTTP status proves DNS, TLS and ingress.3
Each machine class schedules
Run one small job per class and watch its pod leave
Pending.4
Storage works end to end
Read the job’s result back from shared storage.
4. Operate
Scale
- Out: queued tasks for a full pool make the autoscaler add a node of that pool’s type.
- In: idle nodes are removed. Match the scale-down delay to task length so you neither churn nodes nor pay for idle GPUs.
- Ceiling: each pool’s maximum and the namespace quota stop one batch from taking the cluster.
Upgrade
Read the release notes, apply the new artefacts with your existing values in a maintenance window, then repeat the Verify steps. Worker versions are immutable and pinned by jobs, so an upgrade never changes a completed result.Troubleshoot
Tasks stay in Pending
Tasks stay in Pending
Insufficient cpuormemory: the pool is full. Check its maximum.Insufficient nvidia.com/gpu: no GPU free, or the device plugin is not advertising GPUs.untolerated taint: check the machine class to pool mapping.exceeded quota: raise the quota or wait for tasks to finish.
Tasks end with OOMKilled
Tasks end with OOMKilled
The worker used more memory than its class allows. Read the run’s peak memory on the Observability page, then move up a class or tile the input.
ImagePullBackOff
ImagePullBackOff
Check the pull secret exists in the namespace, the registry is reachable from nodes, and any mirror holds the image.
A job is rejected immediately
A job is rejected immediately
The gateway refused it. Check the caller holds a role granted for a restricted worker, and that the exact version exists.
A task fails but its pod started
A task fails but its pod started
The worker’s own code exited non-zero. Read the task log and rerun the same inputs locally with GeoEngine CLI.