Skip to main content
This guide covers everything you need to run Vector in production on Kubernetes: a complete Helm chart, S3-backed storage with a local disk cache, health checks, monitoring, and security.

Deployment

Overview

A basic production Vector deployment consists of a single replica that serves both writes and reads. Vector does not yet support partitioning, so you cannot scale the single writer/reader horizontally. The primary means of scaling is vertical scaling by allocating more cpu/memory/cache, which can take you pretty far. Since all data is persisted on S3, data in Vector is highly durable. So, a basic production deployment of Vector consists of:
  • A single-replica Deployment running the opendata-vector container
  • An S3 bucket for durable storage
  • A PersistentVolumeClaim for the SlateDB disk cache
  • A ConfigMap for Vector’s configuration, S3 storage settings, and SlateDB settings.
  • A ServiceAccount with an IAM role for S3 access (IRSA on EKS)
  • A Service for exposing Vector to other applications
Vector uses SlateDB’s epoch-based fencing, which means only one writer can hold the epoch lock at a time. The Deployment uses the Recreate strategy so that the old pod is fully terminated before the new one starts — a RollingUpdate creates the possibility for the new pod to be fenced by the old one and never become ready.

Helm Chart

Below is a complete Helm chart for deploying Vector. Create these files under charts/opendata-vector.

values.yaml

values.yaml

templates/configmap.yaml

templates/configmap.yaml

templates/serviceaccount.yaml

templates/serviceaccount.yaml

templates/pvc.yaml

templates/pvc.yaml

templates/deployment.yaml

templates/deployment.yaml

templates/service.yaml

templates/service.yaml

templates/_helpers.tpl

Install the chart

Health checks

Vector exposes two health-check endpoints: Both probes are included in the Helm chart’s Deployment template above.

Monitoring

All metrics are exposed at /metrics in Prometheus text format.

Key Metrics

Vector also exposes slatedb_* metrics from the underlying SlateDB storage engine. These are useful for debugging storage-level performance and compaction behavior.

TLS and authentication

Vector does not include built-in TLS termination or authentication. Place a reverse proxy (nginx, Envoy, or a cloud load balancer) in front of Vector to handle TLS and access control.

Object storage security

The Helm chart uses IRSA (IAM Roles for Service Accounts) so that the pod receives temporary AWS credentials automatically — no static access keys required. Create an IAM role with the following policy and attach it to the ServiceAccount via the serviceAccount.roleArn value:
The IAM role’s trust policy should scope access to your EKS cluster’s OIDC provider and the specific service account:
Additional recommendations:
  • Enable encryption at rest on the S3 bucket (SSE-S3 or SSE-KMS).
  • Use a VPC endpoint for S3 to keep traffic off the public internet.
  • Block all public access on the bucket.