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 listed below:
1
git clone [email protected]:rudderlabs/rudderstack-helm.git
2
cd rudderstack-helm
3
4
# If you're using the RudderStack-hosted Control Plane:
5
6
helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"
7
8
# If you're using the self-hosted Control Plane:
9
10
helm install my-release ./ --set backend.controlPlaneJSON=true
Copied!

Introduction

Installing and setting up RudderStack involves two key steps:
    Control Plane setup
    Data Plane setup
Refer to the RudderStack Architecture to know more about the RudderStack Control Plane and Data Plane.

Control Plane Setup

There are two ways you can set up the Control Plane. This section lists the steps involved in each of them.

Use RudderStack-Hosted Control Plane

Why do I need to sign up for RudderStack?
RudderStack's dashboard lets you easily set up your data pipelines by configuring your sources and destinations. It is fully hosted by RudderStack and is free for open-source users. You also get access to some important features like Transformations and a Live Events tab.
    Note and copy your workspace Token from the top of the page, as shown below. This will be required for setting up the Data Plane.

Self-Host the Control Plane

Use this option if you don't wish to sign up for RudderStack.
You can self-host your own Control Plane using the open-source Control Plane Lite utility.
Note that the Control Plane set up using the Control Plane Lite utility lacks certain features like Transformations and Live Events tab.

Data Plane Setup

This section lists the steps to set up the RudderStack Data Plane in your Kubernetes environment.

Prerequisites

    Kubectl installed and connected to your Kubernetes cluster
    Helm installed

For RudderStack-Hosted Control Plane

    Clone the repository containing the RudderStack Helm chart by running the following command:
    1
    git clone [email protected]:rudderlabs/rudderstack-helm.git
    Copied!
    Navigate to the folder containing the Helm chart.
    1
    cd rudderstack-helm/
    Copied!
    To install the chart with the release name my-release, run the following command after replacing <your_workspace_token> with the workspace token copied from the RudderStack dashboard.
    1
    helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"
    Copied!
    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.
    Once you have successfully followed the steps above, send test events to verify the installation.

For Self-Hosted Control Plane

If you have self-hosted the Control Plane using the open-source Control Plane Lite utility, follow these instructions to set up the RudderStack Data Plane in your Kubernetes cluster.
Once you have successfully followed the steps above, send test events to verify the installation.

Upgrading the Chart

For RudderStack-Hosted Control Plane

Update the configuration or version of the images and run the following command:
1
helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"
Copied!

For Self-Hosted Control Plane

Update the configuration or version of the images and run the following command:
1
helm upgrade my-release ./ --set backend.controlPlaneJSON=true
Copied!

Uninstalling the Chart

To uninstall or delete the my-release deployment, run the following command:
1
helm uninstall my-release
Copied!
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
backend.controlPlaneJSON
Set this to true for the Data Plane to read the configuration from the workspaceConfig.json file in case you have a self-hosted Control Plane.
false
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:
1
helm install --name my-release \
2
--set backend.image.version=v0.1.6 \
3
./
Copied!
Note that:
    The configuration specific to the Data Plane can be edited inconfig.yaml.
    The configuration specific to PostgreSQL can be configured in pg_hba.conf, and postgresql.conf.

Instructions for GCP

Make sure you replace the contents of the file rudder-google-application-credentials.json in the repository with the details of your Google service account if you are using Google Cloud Storage or BigQuery for the following cases:

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, you can contact us or start a conversation on our Slack channel.
Last modified 10d ago