RudderStack Kubernetes Setup
4 minute read
Use the Helm package manager to deploy the RudderStack data plane on your Kubernetes cluster. You can find the Helm chart in the RudderStack GitHub repository.
If you plan to use RudderStack in production, using the Kubernetes Helm charts is strongly recommended.
Prerequisites
Data plane setup in Kubernetes
- Run the following command to clone the RudderStack Helm repository containing the RudderStack Helm chart:
git clone git@github.com:rudderlabs/rudderstack-helm.git- Navigate to the folder containing the Helm chart:
cd rudderstack-helm- To install the chart with the release name
my-release, run the following command after replacing<your_workspace_token>with your workspace token.
helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"The above command deploys RudderStack on your default Kubernetes cluster configured with
kubectl.See Configuration for more information on the configurable parameters during the deployment.
- To update the setup, change the configuration or version of the images used, and run the below command:
helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"See the below values.yaml references to update the image versions:
RudderStack recommends using the latest
rudder-serverandrudder-transformerversions to avoid any breaking changes to your pipelines.See the Server-Transformer Compatibility guide for more information.
Workspace token
The workspace token is a unique identifier of your RudderStack workspace. RudderStack uses this token to automatically read your source-destination configurations when you set up and run the data plane.
- Log in to your RudderStack Open Source dashboard.
- Copy your workspace token from Settings > Workspace:

For more details on RudderStack Open Source, see Control plane setup.
Self-hosted control plane
If you are self-hosting your control plane using Control Plane Lite, see Kubernetes instructions to set up the data plane.
Control Plane Lite is now deprecated and does not work with the latest
rudder-serverversions.To set up and manage your connections, using the RudderStack-hosted control plane is strongly recommended.
Verify installation
To verify if the setup is successful, follow the steps listed in Verify installation.
Upgrade Helm chart
The following sections will help you upgrade your Helm chart depending on your RudderStack control plane setup.
RudderStack Open Source
Update the configuration or version of the images and run the following command:
helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"Replace <your_workspace_token> with the workspace token copied in Step 2.
Self-hosted control plane
Update the configuration or version of the images and run the following command:
helm upgrade my-release ./ --set backend.controlPlaneJSON=trueUninstall deployment
To uninstall or delete the deployment named my-release, run the following command:
helm uninstall my-releaseThis command also removes all components created by the chart.
Configuration
The following table lists the configurable parameters of the RudderStack Helm chart and their default values:
| Parameter | Description | Default value |
|---|---|---|
rudderWorkspaceToken | Your workspace token obtained from the RudderStack Open Source 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 | - |
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 | - |
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 | See the values.yaml file. |
backend.controlPlaneJSON | If you have self-hosted the control plane using Control Plane Lite, set this to true.The data plane then reads the configuration from the exported workspaceConfig.json file. | false |
You can change each of these parameters in values.yaml and specify each parameter using the --set key=value[,key=value] argument while running the helm install command:
helm install --name my-release \
--set backend.image.version=v0.1.6 \
./Note that:
- You can edit the data plane-specific configuration in the
config.yamlfile.- You can configure the PostgreSQL-specific configuration in the
pg_hba.confandpostgresql.conffiles.
Components
Installing this Helm chart deploy the following pods and containers in the configured cluster:
POD - {Release name}-rudderstack-0 :
rudderstack-backendrudderstack-telegraf-sidecar
POD - {Release name}-rudderstack-postgresql-0 :
{Release name}-rudderstack-postgresql
POD - {Release name}-rudderstack-transformer-xxxxxxxxxx-xxxxx:
transformer
Setup instructions for GCP
If you plan to use the following destinations:
Make sure to replace the contents of the file rudder-google-application-credentials.json in the repository with the details of your Google service account.