# Deployment on Kubernetes

The recommended deployment environment for production workloads is Kubernetes (opens new window).
We provide a Helm Chart (opens new window) in order to deploy your cluster.

# Quick Start

helm repo add kestra https://helm.kestra.io/
helm install kestra --set kafka.enabled=true --set elasticsearch.enabled=true --set minio.enabled=true kestra/kestra

# Details

You can change the default behaviour and configuring your cluster changing the defaults values (opens new window).

By default, charts will only deploy kestra service with only 1 replica for each servers.

You can also deploy the standalone servers which will host all kestra servers in only one pod, using these values:

kestra:
  deployments:
    webserver:
      enabled: false
    executor:
      enabled: false
    indexer:
      enabled: false
    scheduler:
      enabled: false
    worker:
      enabled: false
    standalone:
      enabled: true

The charts could also deploy all needed services:

  • Zookeeper using kafka.enabled: true
  • Kafka cluster using kafka.enabled: true
  • Elasticsearch cluster using elasticsearch.enabled: true
  • Minio standalone using minio.enabled: true

WARNING

All services (kafka, elasticsearch, zookeeper, minio) are deployed using unsecured configurations (no authentification, no tls, ...). When installing for a production environnement, you need to secure all these services and adapt all service configurations to be production ready.

The most important values to adapt are the configuration files, including the following values:

  • configuration: used to apply the entire configuration files from Kestra
  • secrets: this will be merged with configuration but kept as secret on your k8s cluster.