description |
---|
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.
{% hint style="info" %} If you are planning to use RudderStack in production, we strongly recommend using the Kubernetes Helm charts. {% endhint %}
{% 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
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 %}
There are two ways you can set up the Control Plane. This section lists the steps involved in each of them.
- Sign up and log into the RudderStack dashboard.
{% 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.
{% 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 %}
This section lists the steps to set up the RudderStack Data Plane in your Kubernetes environment.
-
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.
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.
Update the configuration or version of the images and run the following command:
$ helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"
Update the configuration or version of the images and run the following command:
$ helm upgrade my-release ./ --set backend.controlPlaneJSON=true
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.
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 in
config.yaml
. - The configuration specific to PostgreSQL can be configured in
pg_hba.conf
, andpostgresql.conf
. {% endhint %}
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:
- ****Google Cloud Storage as a destination
- Google Cloud Storage for dumping jobs
- ****BigQuery as a warehouse destination
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
If you come across any issues while setting up RudderStack, you can contact us or start a conversation on our Slack channel.