Installing NucliaDB on Kubernetes
Helm
NucliaDB provides a helm chart for installing NucliaDB with Kubernetes.
helm install nucliadb-standalone \
https://github.com/nuclia/nucliadb/releases/latest/download/nucliadb-chart.tgz \
--namespace nucliadb --values custom-values.yaml
See our GitHub releases to find the latest helm chart releases available.
Helm Configuration
Standalone installation runs NucliaDB in non-clustering mode on a single pod.
NucliaDB is a 12 factor app and all it's configuration is done through environment variables.
Read our Configuration docs for a complete set of environment variables available to configure your helm chart.
Chart configuration:
env
: Dictionary of env variable variablesenvSecrets
: Map secrets to environment variablesreplicas
: Number of NucliaDB nodes to create. Recommended to have at least 2image
: Customize where to pull image from if you need to copy to private registryimageVersion
resources
: standard kubernetes resource limits and requests settingsstorage.class
: the NucliaDB chart is not opinionated on the storage classes used and you have to provide those that fit your needs. However, SSD-type disks are recommended to be provided via the Cloud provider of your choice. See the supported cloud providers docs.storage.size
: this may heavily depend on your workload.
Example values.yaml
file:
# app settings
env:
DRIVER: PG
DRIVER_PG_URL: postgresql://postgres:password@HOSTNAME:5432/postgres
NUA_API_KEY: '<My key>'
NUCLIA_ZONE: 'europe-1'
CORS_ORIGINS: '["http://localhost:8080"]'
FILE_BACKEND: s3
S3_ENDPOINT: http://<minio_server_ip>:9000
S3_CLIENT_ID: admin
S3_CLIENT_SECRET: 12345678
replicas: 2
envSecrets:
- name: DRIVER_PG_URL
valueFrom:
secretKeyRef:
name: nuclia-pg
key: pg-url
storage:
class: <k8s storage class name here>
size: 50Gi
For simplicity, this example assumes you have a minio server running in the Kubernetes cluster as blob storage service. Check out the supported file storage backends for more specific configuration details.
Upgrading NucliaDB
To upgrade to a newer version of NucliaDB with Helm you can use the following command:
VERSION=v2.42.0
helm upgrade nucliadb-standalone \
https://github.com/nuclia/nucliadb/releases/download/$VERSION/nucliadb-chart.tgz \
--namespace nucliadb --values custom-values.yaml