Free audit

View Audit Scope

Apache Pinot on Kubernetes

Apache Pinot on Kubernetes

In short: Running Apache Pinot on Kubernetes means mapping its four node types to K8s workloads: controllers and segment-storing servers run as StatefulSets with PersistentVolumeClaims, stateless brokers run as HPA-scaled Deployments, and minions handle background tasks. A deep store (S3/GCS) holds offline segments, with Kafka feeding real-time tables and ZooKeeper coordinating.

Deploy production-grade Apache Pinot on Kubernetes with operator-managed lifecycle, Helm-based provisioning, and cloud-native scaling for ultra-low-latency real-time analytics at any scale.

Executive Direct Answer · Apache Pinot on Kubernetes Architecture

JusDB engineers production-grade Apache Pinot on Kubernetes deployments utilizing cloud-native operators and Helm architectures. JusDB DBREs configure dedicated local NVMe storage classes, establish S3/GCS deep storage tiers, enforce PodDisruptionBudgets, and orchestrate zero-downtime rolling stateful upgrades with automated Helix consensus validation.

Response Targets: Per Agreement·Topology: Multi-AZ K8s StatefulSets·Storage: Local NVMe + Cloud Deep Storage·Upgrades: Zero-Downtime Rolling·ISO 27001 & SOC 2 Type II: aligned, certification in progress
Real-Time
OLAP
Sub-Second
Queries
Horizontal
Scaling

Comprehensive Apache Pinot on Kubernetes Services

From cluster deployment to production monitoring, we provide end-to-end Apache Pinot on Kubernetes solutions for real-time analytics workloads.

Pinot Deployment on K8s

Controller, broker, server, and minion node deployment with StatefulSets and operator-managed lifecycle

  • Controller StatefulSet configuration
  • Broker Deployment with HPA
  • Server StatefulSet with persistent storage
  • Minion node setup for background tasks

Helm Chart Management

Chart customization, values tuning, and upgrade strategies for reproducible Pinot deployments

  • Helm chart customization and templating
  • Values file tuning for production
  • Chart version upgrade strategies
  • GitOps integration with ArgoCD / Flux

Real-Time & Offline Tables on K8s

Kafka-connected real-time ingestion, batch offline tables, and hybrid table configurations on Kubernetes

  • Real-time table with Kafka integration
  • Offline batch ingestion via K8s Jobs
  • Hybrid table lambda architecture
  • Schema and table config management

Storage & Persistence

Deep store, segment store, PVCs, StorageClasses, and tiered storage for cost-optimized Pinot data

  • PVC and StorageClass configuration
  • Deep store on S3 / GCS / Azure Blob
  • Tiered storage (hot/cold) setup
  • Volume expansion and snapshots

Monitoring on K8s

Pinot metrics, Prometheus, Grafana, and alerting on Kubernetes for full cluster observability

  • Prometheus ServiceMonitor setup
  • Grafana dashboard provisioning
  • Query latency and ingestion lag alerts
  • Alertmanager rules and routing

Backup & Disaster Recovery

Segment backup, deep store replication, and cross-region restore for Pinot data protection

  • Deep store backup and replication
  • Segment snapshot strategies
  • Cross-region DR configuration
  • Controller metadata backup

Why Run Apache Pinot on Kubernetes?

Cloud-native real-time analytics with declarative cluster management, elastic scaling, and infrastructure-as-code for consistent, repeatable Pinot deployments.

Cloud-Native OLAP

Run Apache Pinot as a first-class Kubernetes workload with declarative configuration, self-healing, and seamless integration with your cloud-native infrastructure and CI/CD pipelines.

Elastic Scaling

Scale broker nodes with HPA for query throughput, add server nodes for data capacity, and use VPA for right-sizing resources. Pinot's segment rebalance API redistributes data automatically.

Real-Time Ingestion

Ingest streaming data from Apache Kafka with sub-second latency. Kubernetes manages Pinot server pods that consume from Kafka topics and make data queryable in real time.

Rolling Upgrades

Upgrade Pinot versions with minimal downtime using Kubernetes rolling update strategies. Controllers, brokers, servers, and minions are upgraded sequentially with health checks at each step.

Pinot on K8s Key Metrics

Query Latency(P99 at scale)
Sub-Second
Ingestion(Kafka streaming)
Real-Time
Scaling(HPA / VPA support)
Horizontal
Deep Store(Object storage)
S3 / GCS
Self-Healing(Pod restart & rebalance)
Yes
GitOps Ready(ArgoCD / Flux compatible)
Yes

Apache Pinot Architecture on Kubernetes

Pinot's distributed architecture maps naturally to Kubernetes primitives, with each node type deployed as the optimal workload resource for its role.

StatefulSet

Controller

Cluster metadata and orchestration

Manages cluster topology and state
Handles segment assignment
Orchestrates rebalance operations
Serves admin REST API
Deployed as StatefulSet with PVC
Leader election via ZooKeeper
Deployment / HPA

Broker

Query routing and fan-out

Accepts SQL queries from clients
Routes queries to correct servers
Merges partial results
Stateless — scales with HPA
Load-balanced via K8s Service
Query optimization and planning
StatefulSet

Server

Segment storage and query execution

Hosts table segments on local storage
Executes queries on segment data
Consumes real-time streams (Kafka)
Persistent volumes for segment data
Supports tiered storage (hot/cold)
Scales by adding replicas + rebalance
Deployment / Job

Minion

Background task execution

Executes segment merge tasks
Runs purge and retention jobs
Handles segment conversion
Offloads work from servers
Deployed as Deployment or K8s Jobs
Scales independently of data path

Our Apache Pinot on Kubernetes Implementation Process

A proven methodology for deploying production-ready Apache Pinot on Kubernetes with comprehensive testing and validation.

01

Assessment & Planning

Evaluate your analytics workload requirements, data volumes, query patterns, and Kubernetes environment. Select the right node sizing, storage backend, and cluster topology.

02

Cluster Deployment

Deploy Pinot via Helm charts with production-tuned values. Configure controller, broker, server, and minion nodes with appropriate resource requests, persistent volumes, and networking.

03

Table Setup & Validation

Create real-time and offline table schemas, configure Kafka stream ingestion, set up batch ingestion jobs, and validate query performance under production-like load.

04

Production & Operations

Go live with full monitoring, alerting, automated scaling, and runbooks. Provide team training on Pinot cluster management, day-2 operations, and ongoing support, with 24x7 on-call available.

How JusDB DBRE Kubernetes Engineering compares to alternative paths.

Operating stateful Apache Pinot clusters on Kubernetes requires specialized engineering for Helix state machine consensus, local NVMe segment caching, and zero-downtime rolling StatefulSet updates. Here is how our cloud-native DBREs compare across core evaluation vectors:

Evaluation Vector
JusDB DBRE
In-House DBALegacy AgencyDeveloper Generalist
Operator & Helm Architecture (Pinot Operator vs StarTree Helm)Engineers production Helm and Operator deployments with strict tier separation (Controller, Broker, Server, Minion), dedicated anti-affinity, topology spread constraints, and GitOps automation.Deploys generic upstream community Helm charts with default resource limits, leading to co-located noisy neighbors and resource starvation during traffic spikes.Deploys Pinot components as static unversioned manifests without Helm templating or operator lifecycle management, making updates error-prone.Packages all Pinot components into a monolithic pod or un-isolated namespace, violating microservices boundaries and complicating scaling.
Storage Class Selection (Local NVMe vs Persistent Volume Claims)Deploys server StatefulSets on high-IOPS local NVMe instance storage via local-static-provisioner with RAID-0 and tuned IOPS, minimizing segment access latency to sub-millisecond p99.Relies on generic cloud network storage (gp2/gp3 standard) without provisioned IOPS, triggering I/O bottlenecks and throttling during segment reload cycles.Mounts shared NFS or CIFS network volumes across server pods, causing file locking contentions and catastrophic segment corruption.Uses ephemeral container scratch storage without persistent volume claims, losing downloaded segments on pod restarts and overloading deep storage.
Deep Storage Integration (S3/GCS/ADLS Persistent Retention)Integrates multi-region resilient object storage (S3/GCS/ADLS) with IAM/Workload Identity authentication, fine-grained bucket lifecycle policies, and zero-controller-proxy segment download.Stores static IAM access keys in plaintext Kubernetes secrets without rotation, risking credential compromise and API access throttling.Routes all segment uploads and downloads through the Pinot Controller as an HTTP proxy, saturating controller network bandwidth and memory.Configures deep storage without retry backoffs or lifecycle tiering, accumulating petabytes of unpurged dead segments and inflating cloud bills.
ZooKeeper & Helix Controller Consensus IsolationIsolates ZooKeeper quorums on dedicated SSD node pools with tuned tickTime, syncLimit, and JVM GC, hardening Helix controller state machines against split-brain leader elections.Shares a single multi-tenant ZooKeeper cluster with Kafka and other workloads, causing session timeouts and controller flapping during Kafka rebalances.Deploys single-replica ZooKeeper instances or co-locates controllers with query brokers, creating single points of failure for cluster metadata.Leaves default ZooKeeper timeouts uncalibrated, causing brief network jitters to trigger unnecessary full-cluster segment reassignments.
Rolling Stateful Upgrades & PDBsImplements strict PodDisruptionBudgets (PDBs), automated canary rollouts, and pre-stop lifecycle hooks that drain server queries and quiesce LLC consumption before termination.Executes unconstrained kubectl rollout restarts that terminate multiple server replicas simultaneously, causing query error spikes and dropped in-flight requests.Schedules cluster-wide maintenance downtime for version upgrades, taking mission-critical customer-facing analytics offline for hours.Upgrades Pinot server versions without verifying Helix cluster state or backward compatibility, resulting in unreadable segment formats and rollback failures.
Cloud-Native Telemetry (Prometheus JMX & Grafana)Instruments Prometheus JMX exporters across all Pinot tiers, building granular Grafana dashboards and alerting for LLC ingestion lag, segment reload latency, and broker scatter-gather timeouts.Monitors basic host-level CPU and memory metrics, missing internal Pinot signals like LLC consumer stalls, JVM direct memory leaks, and Helix task queue backlogs.Relies on manual Pinot web UI inspection during outages, offering no historical metrics, alerting, or proactive anomaly detection.Floods Prometheus with unaggregated high-cardinality metric labels, crashing monitoring pods and degrading cluster observability.

Critical Pinot on Kubernetes Risks We Eliminate

Operating real-time distributed OLAP clusters inside containerized Kubernetes environments introduces storage throttling, ZooKeeper consensus flapping, and eviction storms during cluster updates. We engineer resilience into every layer to eliminate these breakdown modes:

P1 Critical

PVC Storage Throttling Crashing Pinot Server Pods

Deploying Pinot Server pods on generic cloud network storage (gp2/gp3 standard) with IOPS burst limits leads to disk I/O exhaustion during segment reload or real-time LLC commit cycles. Linux I/O wait times spike, tripping Kubernetes readiness probes and triggering cascading pod restarts.

JusDB Engineering Mitigation:

JusDB deploys dedicated local NVMe storage classes formatted with XFS and tuned readahead, configures direct-path storage provisioners, and implements I/O wait latency alerting before storage throttling triggers pod evictions.

P1 Critical

ZooKeeper Split-Brain Triggering Controller Eviction Loops

Transient Kubernetes network latency between worker nodes or co-located multi-tenant workloads triggers ZooKeeper session expirations. Multiple Pinot Controller pods attempt to acquire the Helix cluster leader znode simultaneously, creating split-brain metadata locks and evicting active server segments.

JusDB Engineering Mitigation:

JusDB isolates ZooKeeper quorums onto dedicated single-tenant node pools with anti-affinity, calibrates tickTime and syncLimit, and configures conservative Helix leader election lease timeouts with health check safeguards.

P2 High

Eviction Storms During Rolling Node Pool Upgrades

Cloud Kubernetes node pool auto-upgrades drain nodes concurrently without honoring stateful Pinot tier dependencies. Server pods are terminated before real-time Kafka consumer offsets are committed, causing segment generation corruption and multi-minute query outages.

JusDB Engineering Mitigation:

JusDB deploys strict PodDisruptionBudgets (maxUnavailable: 1 per tier), configures pre-stop lifecycle hooks to flush in-flight LLC segments gracefully, and enforces automated canary rollout gates verifying external view stability.

Telemetry Runbooks · Non-Blocking Kubernetes Diagnostics

Our DBREs execute non-blocking diagnostic commands across Kubernetes CRD controllers and internal Pinot Controller APIs to audit cluster topology, pod distribution, and Helix consensus health:

Kubernetes: Pinot Pod Resource & Persistent Volume Health
kubectl · Cluster Topology

Audits pod phase, restart counts, node distribution across availability zones, and verifies PersistentVolumeClaim binding status for Pinot Controller and Server StatefulSets.

# 1. Inspect Pinot pod distribution, node placement, and status
kubectl get pods -l app=pinot -o wide -n pinot

# 2. Audit PersistentVolumeClaim binding and storage class capacity
kubectl get pvc -l app=pinot -o wide -n pinot
Kubernetes: Pinot Helix Controller Leadership & State Machine Logs
kubectl · Helix Coordination

Tails live Controller logs to monitor Helix state transition messages, leader election status, partition assignment state changes, and znode session connectivity.

# 1. Audit active Helix leader controller and recent cluster events
kubectl logs -l component=pinot-controller -n pinot --tail=100 | grep -E "LEADER|Helix|Session"

# 2. Inspect controller health endpoint for ideal state reconciliation
kubectl exec -it deployment/pinot-controller -n pinot -- curl -s localhost:9000/health

Apache Pinot on Kubernetes — Frequently Asked Questions

Common questions about running Apache Pinot on Kubernetes in production environments.

Apache Pinot is a real-time distributed OLAP datastore designed to deliver ultra-low-latency analytics on large-scale datasets. Running Pinot on Kubernetes provides declarative configuration, automated scaling, self-healing, and seamless integration with cloud-native infrastructure. Kubernetes StatefulSets and operators manage the lifecycle of Pinot's controller, broker, server, and minion nodes, enabling consistent deployments, rolling upgrades, and resource-efficient cluster management.

Pinot has four node types that map naturally to Kubernetes workloads. Controllers manage cluster metadata and are deployed as a StatefulSet with stable network identities. Brokers handle query routing and can be deployed as Deployments with Horizontal Pod Autoscaler for elastic query throughput. Servers store segment data and run as StatefulSets with persistent volumes for durable storage. Minions execute background tasks like segment merge and purge, and are typically deployed as Deployments or Jobs. Each component gets its own Kubernetes Service for discovery.

Pinot servers require fast local or network-attached storage for segment data. On Kubernetes, this is provisioned via PersistentVolumeClaims backed by high-performance StorageClasses — such as gp3/io2 on AWS, pd-ssd on GCP, or Premium SSD on Azure. For the deep store (where offline segments are stored long-term), S3, GCS, or Azure Blob Storage is used. Pinot's tier storage feature allows configuring hot/cold tiers, mapping to different StorageClasses or remote object stores for cost-optimized data lifecycle management.

Pinot supports both horizontal and vertical scaling on Kubernetes. Broker nodes can be scaled horizontally using Kubernetes HPA based on CPU or query throughput metrics. Server nodes are scaled by adding replicas to the StatefulSet and rebalancing table segments across the new servers using Pinot's rebalance API. Vertical scaling is achieved via Vertical Pod Autoscaler (VPA) to right-size CPU and memory. For multi-tenant workloads, Pinot's tenant isolation ensures resource boundaries between different workloads on shared clusters.

Pinot supports two table types: real-time tables that ingest from streaming sources like Apache Kafka, and offline tables that ingest batch data from the deep store. On Kubernetes, real-time ingestion is configured by pointing Pinot servers to Kafka brokers (often also running on K8s). The stream consumption config (streamConfigs) is part of the table config, not the schema — the Pinot schema defines only columns (dimension, metric, and dateTime field specs). Offline tables use batch ingestion jobs — typically Kubernetes Jobs or Spark jobs — that push segments to the deep store, from which servers download and serve them. Hybrid tables combine both for lambda-architecture analytics.

Pinot exposes JMX and Prometheus-compatible metrics for all node types, covering query latency, segment counts, ingestion lag, and resource utilization. On Kubernetes, we configure Prometheus ServiceMonitors to scrape Pinot metrics, Grafana dashboards for visualization, and Alertmanager rules for critical alerts like high query latency, ingestion lag spikes, or controller failovers. Pinot's built-in query console provides real-time cluster health views. For distributed tracing, OpenTelemetry integration helps trace queries across broker and server nodes.

Ready to Run Apache Pinot on Kubernetes?

Let our experts deploy and manage production Apache Pinot on Kubernetes with real-time ingestion, sub-second analytics, and elastic scaling for your OLAP workloads.

Related Apache Pinot Services

Explore more ways our Apache Pinot experts can help with your database infrastructure.