For the complete documentation index, see llms.txt. This page is also available as Markdown.

Kubernetes

Deploy a Pinot cluster on Kubernetes using Helm.

Outcome

Deploy a production-ready Pinot cluster on Kubernetes with Helm charts.

The examples in this guide are sample configurations for reference. For production deployments, customize settings as needed -- especially security features like TLS and authentication.

Prerequisites

Steps

1. Add the Pinot Helm repository

2. Create a namespace

3. Install Pinot

StorageClass: Specify the StorageClass for your cloud vendor. Use block storage only -- do not mount blob stores (S3, GCS, AzureFile) as the data-serving file system.

  • AWS: gp2

  • GCP: pd-ssd or standard

  • Azure: AzureDisk

  • Docker Desktop: hostpath

Helm 3 Migration (v2): As of the recent migration to Helm 3 apiVersion v2, the Pinot charts now use Chart.yaml for dependency declarations (instead of requirements.yaml) and Chart.lock (instead of requirements.lock). The helm dependency build command fetches dependencies from the chart repository automatically.

Verify

Check the deployment status:

All pods should reach Running status. You can port-forward the Controller to access the UI:

Then open http://localhost:9000.

Loading data

For stream ingestion on Kubernetes, see the Kubernetes stream ingestion guide. For batch data loading and table creation, continue with the onboarding path below.

Deleting the cluster

To remove Pinot from your cluster:

Next step

Your cluster is running. Continue to First table and schema to load data.

Upgrading from Helm v1 charts

If you are upgrading from older Pinot Helm charts (apiVersion v1), follow these steps:

1. Update Helm repository

2. Back up your configuration

Save your current values.yaml in case you need to reference it:

If upgrading from v1 charts, it's safest to uninstall and reinstall:

4. Reinstall with new Helm v2 charts

Key changes in Helm v2 charts

  • apiVersion: Changed from v1 to v2

  • Chart type: Added explicit type: application

  • Dependencies: Now declared in Chart.yaml instead of requirements.yaml

  • Lock file: Changed from requirements.lock to Chart.lock

  • Dependency fetching: Use helm dependency build instead of helm dependency update

  • Chart versions: No longer include -SNAPSHOT suffix (uses standard SemVer)

  • Chart icons: Now include official Apache Pinot icons

If deploying from source

When deploying directly from the Git repository, always run helm dependency build before installing:

Last updated

Was this helpful?