Kubernetes

Step-by-step instructions for deploying RudderStack on Kubernetes.

You can deploy RudderStack on your Kubernetes cluster using the Helm package manager.

The repository for this Helm chart can be found here.

If you are planning to use RudderStack in production, we strongly recommend using the Kubernetes Helm charts.

Quick Overview

helm install deploys RudderStack on the Kubernetes cluster configured with kubectl.

The commands are as shown below:

$ git clone [email protected]:rudderlabs/rudderstack-helm.git
$ cd rudderstack-helm/
$ helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"

Prerequisites

  • Kubectl installed and connected to your Kubernetes cluster

  • Helm installed

  • Sign up and log into the RudderStack dashboard. Copy your workspace Token from the top of the page, as shown:

Why do I need to sign up on RudderStack?

RudderStack's dashboard (Control Plane) lets you set up your data pipelines by configuring event data sources and destinations. This dashboard is hosted by RudderStack and is free for open-source users.

If you don't wish to sign up for RudderStack, you can also set up your own control plane using the open-source RudderStack Config Generator. However, note that the control plane set up using the RudderStack Config Generator lacks certain features like Transformations and Live Events Debugger.

Installing the Chart

To install the chart with the release name my-release from the root directory of this repository, run the following command:

$ helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"

The above command deploys RudderStack on your default Kubernetes cluster configured with kubectl.

Refer to the Configuration section below for information on the parameters that can be configured during deployment.

Upgrading the Chart

To update the configuration or version of the images used, change the configuration and run the following command:

$ helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"

Uninstalling the Chart

To uninstall or delete the my-release deployment, run the following command:

$ helm uninstall my-release

This removes all the components created by the chart.

Configuration

The following table lists the configurable parameters of the RudderStack chart and their default values:

Parameter

Description

Default

rudderWorkspaceToken

Workspace token from the dashboard

-

backend.image.repository

Container image repository for the backend

rudderlabs/rudder-server

backend.image.version

Container image tag for the backend. Check the Available versions

0.1.9

backend.image.pullPolicy

Container image pull policy for the backend image

Always

transformer.image.repository

Container image repository for the transformer

rudderlabs/transformer

transformer.image.version

Container image tag for the transformer. Check the Available versions

0.1.4

transformer.image.imagePullPolicy

Container image pull policy for the transformer image

Always

backend.extraEnvVars

Extra environments variables to be used by the backend in the deployments

Refer the values.yaml file

Each of these parameters can be changed in values.yaml. You can also specify each parameter using the --set key=value[,key=value] argument while running the helm install command.

For example:

$ helm install --name my-release \
--set backend.image.version=v0.1.6 \
./

Note that:

  • The configuration specific to the backend can be edited in config.yaml.

  • The configuration specific to PostgreSQL can be configured in pg_hba.conf, and postgresql.conf.

Components

Installing this Helm chart will deploy the following pods and containers in the configured cluster:

POD - {Release name}-rudderstack-0 :

  • rudderstack-backend

  • rudderstack-telegraf-sidecar

POD - {Release name}-rudderstack-postgresql-0 :

  • {Release name}-rudderstack-postgresql

POD - {Release name}-rudderstack-transformer-xxxxxxxxxx-xxxxx:

  • transformer

Contact Us

If you come across any issues while setting up RudderStack on your Kubernetes cluster, please feel free to contact us. You can also start a conversation on our Slack channel.