Skip to content

Latest commit

 

History

History
209 lines (131 loc) · 8.6 KB

File metadata and controls

209 lines (131 loc) · 8.6 KB
description
Step-by-step instructions for deploying RudderStack on Kubernetes.

Kubernetes

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

The repository for this Helm chart can be found here.

{% hint style="info" %} If you are planning to use RudderStack in production, we strongly recommend using the Kubernetes Helm charts. {% endhint %}

Quick Overview

{% hint style="info" %} helm install deploys RudderStack on the Kubernetes cluster configured with kubectl. {% endhint %}

The commands are listed below:

$ git clone [email protected]:rudderlabs/rudderstack-helm.git
$ cd rudderstack-helm/

# If you're using the RudderStack-hosted Control Plane:

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

# If you're using the self-hosted Control Plane:

$ helm install my-release ./ --set backend.controlPlaneJSON=true

Introduction

Installing and setting up RudderStack involves two key steps:

  • Control Plane setup
  • Data Plane setup

{% hint style="info" %} Refer to the RudderStack Architecture to know more about the RudderStack Control Plane and Data Plane. {% endhint %}

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

{% hint style="info" %} 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. {% endhint %}

  • 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

{% hint style="warning" %} Use this option if you don't wish to sign up for RudderStack. {% endhint %}

You can self-host your own Control Plane using the open-source ****Control Plane Lite ****utility.

{% hint style="danger" %} Note that the Control Plane set up using the Control Plane Lite ****utility lacks certain features like Transformations and Live Events tab. {% endhint %}

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:

    $ git clone [email protected]: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 the workspace token copied from the RudderStack dashboard.

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

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

{% hint style="info" %} Refer to the Configuration section below for information on the parameters that can be configured during deployment. {% endhint %}

  • 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:

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

For 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

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

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

{% hint style="info" %} 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. {% endhint %}

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.