Deploy RisingWave on Kubernetes with Helm
This guide walks you through the process of deploying RisingWave in a single Kubernetes cluster with Helm.
Prerequisites
- Ensure you have Helm 3.7 + installed in your environment. For details about how to install Helm, see the Helm documentation.
- Ensure you have Kubernetes 1.24 or higher installed in your environment.
- Ensure you allocate enough resources for the deployment. For details, see Hardware requirements.
Step 1: Start Kubernetes
Start a Kubernetes cluster. For details about starting a Kubernetes cluster, see Kubernetes’ Getting started guide.
Step 2: Start RisingWave
Now start a RisingWave cluster with Helm.
Add the RisingWave Helm chart repository:
Update your Helm chart repositories to ensure that you are using the RisingWave Helm chart:
If you are using AWS EKS, you also need to update the local configuration for kubectl and Helm to access your EKS cluster:
Create a RisingWave namespace. We recommend creating a dedicated namespace for RisingWave resources.
Customize your configuration for the RisingWave deployment by editing the values.yml file.
- Customize meta store: The meta store in RisingWave holds metadata for cluster operations. See Configuration for all the available options and Examples for detailed usage of meta stores.
- Customize state store: The state store in RisingWave serves as a fault-tolerant storage system for preserving system state. See Configuration for all the available options and Examples for detailed usage of state stores.
- Bundled PostgreSQL and MinIO: If you want to use
PostgreSQL
as the meta store andMinIO
as the state store, the Helm chart for RisingWave offers the option to bundle them together. This allows for a quick and easy setup of the Helm chart. See Configuration for more details. To enable this feature, settags.bundle=true
.
Before using the bundled PostgreSQL
and MinIO
, and any local stores, ensure that you have implemented the Dynamic Volume Provisioning.
Install the latest RisingWave Helm chart:
Where <my-risingwave>
is the release name you choose to use for your RisingWave deployment. This command will install the latest stable version of RisingWave.
If you want to install a particular version, you can specify the version via the image-tag
attribute. Remember to replace <version_number>
with the desired version, for example v1.7.0
.
You may get an output message like this:
Use the following command to check the deployment status:
When your status looks like below, it means the RisingWave cluster starts successfully:
Step 3: Access RisingWave
By default, the RisingWave Helm Chart will deploy a ClusterIP service that enables the cluster-local communication.
Once deployed, you can forward your local machine’s port 4567
to the service’s port via:
You can then connect to RisingWave using a PostgreSQL client on port 4567. For example:
Step 4: Monitor performance
You can monitor the RisingWave cluster using the monitoring stack. For details, see Monitoring a RisingWave cluster.
Optional: Resize a node
By editing the configurations in values.yml, you can resize a worker node. The compactor node configurations are in the compactorComponent
section. Configurations for the meta node and compute node are in metaComponent
and computeComponent
sections respectively. See Customize pods of different components for details.
Please note that increasing the CPU resource will not automatically increase the parallelism of existing materialized views. When scaling up (adding more CPU cores) a compute node, you should perform the scaling by following the instructions in Cluster scaling.
Was this page helpful?