RudderStack Kubernetes Setup

Set up RudderStack on your Kubernetes cluster.

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.

warning
If you plan to use RudderStack in production, using the Kubernetes Helm charts is strongly recommended.

Prerequisites

  • Install Kubectl and connect to your Kubernetes cluster.
  • Install Helm.

Data plane setup in Kubernetes

  1. Run the following command to clone the RudderStack Helm repository containing the RudderStack Helm chart:
git clone git@github.com:rudderlabs/rudderstack-helm.git
  1. Navigate to the folder containing the Helm chart:
cd rudderstack-helm
  1. 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>"
info

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.

  1. 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:

warning

RudderStack recommends using the latest rudder-server and rudder-transformer versions 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.

  1. Log in to your RudderStack Open Source dashboard.
  2. Copy your workspace token from Settings > Workspace:
Workspace Token

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.

danger

Control Plane Lite is now deprecated and does not work with the latest rudder-server versions.

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=true

Uninstall deployment

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

helm uninstall my-release
info
This 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:

ParameterDescriptionDefault value
rudderWorkspaceTokenYour workspace token obtained from the RudderStack Open Source dashboard.-
backend.image.repositoryContainer image repository for the backend.rudderlabs/rudder-server
backend.image.versionContainer image tag for the backend. Check the available versions-
backend.image.pullPolicyContainer image pull policy for the backend image.Always
transformer.image.repositoryContainer image repository for the transformer.rudderlabs/transformer
transformer.image.versionContainer image tag for the transformer. Check the available versions-
transformer.image.imagePullPolicyContainer image pull policy for the transformer image.Always
backend.extraEnvVarsExtra environments variables to be used by the backend in the deploymentsSee the values.yaml file.
backend.controlPlaneJSONIf 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 \
  ./
info

Note that:

  • You can edit the data plane-specific configuration in the config.yaml file.
  • You can configure the PostgreSQL-specific configuration in the pg_hba.conf and postgresql.conf files.

Components

Installing this Helm chart 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

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.


Questions? Contact us by email or on Slack