Skip to main content
Chroma provides official Helm charts for Kubernetes deployment, supporting both single-instance and distributed architectures.
The distributed Chroma Kubernetes manifests are under active development. While suitable for testing and development, review thoroughly before production use.

Prerequisites

  • Kubernetes cluster (1.19+)
  • kubectl configured
  • Helm 3.x installed
  • Persistent volume provisioner (for production)

Helm Chart Installation

Quick Start

Deploy Chroma using the official Helm chart:

Chart Information

The Helm chart is located at k8s/distributed-chroma/:

Configuration

Default Values

The chart uses k8s/distributed-chroma/values.yaml for configuration:

Custom Configuration

Create a custom values.yaml:
Install with custom values:

Architecture Components

The distributed Chroma deployment includes:

Core Services

  1. Frontend Service (rust-frontend-service)
    • HTTP API endpoint
    • Routes requests to appropriate services
    • Port: 8000
  2. Query Service (query-service)
    • Handles vector similarity search
    • Stateful set for distributed queries
    • Port: 50051 (gRPC)
  3. Log Service (rust-log-service)
    • Write-ahead log for durability
    • Manages data ingestion
    • Port: 50051 (gRPC)
  4. Compaction Service (compaction-service)
    • Optimizes storage
    • Merges and compacts segments
  5. SysDB (sysdb)
    • Metadata and catalog storage
    • PostgreSQL-backed
    • Port: 50051 (gRPC)
  6. Garbage Collector (garbage-collector)
    • Cleans up unused segments
    • Manages storage lifecycle

Supporting Infrastructure

  • PostgreSQL: Metadata storage
  • MemberList CRD: Service discovery and membership
  • Service Accounts & RBAC: Security and permissions

Tilt for Local Development

Tilt provides a complete local Kubernetes development environment.

Setup

  1. Install Requirements
  2. Start Local Kubernetes
  3. Deploy with Tilt

Tilt Features

Tilt automatically:
  • Builds all Docker images from source
  • Deploys complete distributed architecture
  • Sets up observability stack:
    • Grafana (dashboards)
    • Jaeger (tracing)
    • Prometheus (metrics)
    • OpenTelemetry Collector
  • Watches for code changes and rebuilds
  • Provides unified dashboard at http://localhost:10350

Service Access

Tilt exposes these ports:

Tilt Configuration

The Tiltfile defines the complete environment:

Development Workflow

Manual Kubernetes Deployment

Install Custom Resource Definitions

Deploy PostgreSQL

Deploy Chroma Services

Scaling

Horizontal Scaling

Vertical Scaling

Update resource requests/limits in values:
Apply changes:

Storage Configuration

Persistent Volumes

Storage Classes

Monitoring and Observability

Tilt deploys a complete observability stack:

Grafana

Access via Tilt dashboard or port-forward:

Jaeger (Tracing)

Prometheus (Metrics)

Configure OpenTelemetry

Troubleshooting

Check Pod Status

Debug MemberList

Database Connection Issues

Service Communication

Upgrading

Uninstalling

Multi-Region Deployment

Enable multi-region mode with Tilt:
This deploys two Chroma clusters (chroma and chroma2) with cross-region replication.

Next Steps

Cloud Providers

Deploy on AWS, GCP, or Azure

Configuration

Advanced configuration options

Observability

Monitor and debug your deployment

Performance

Performance tuning and optimization