1先决条件
确保环境中已安装 Helm 3.7 或更高版本。有关如何安装 Helm 的详细信息,请参阅 Helm 文档[1]。 确保环境中已安装 Kubernetes 1.24 或更高版本。 确保为部署分配了足够的资源,有关详情,请参阅硬件要求[2]。
2启动 Kubernetes
启动一个 Kubernetes 集群。有关如何启动详细信息,请参阅 Kubernetes 入门指南[3]。
3启动 RisingWave
现在使用 Helm 启动 RisingWave 集群。首先,添加 RisingWave Helm chart 仓库:
helm repo add risingwavelabs https://risingwavelabs.github.io/helm-charts/ --force-update
更新你的 Helm chart 仓库,确保你使用的是最新的 RisingWave Helm chart:
helm repo update
如果你使用 AWS EKS,还需要更新 Kubectl 和 Helm 的本地配置以访问 EKS 集群:
aws eks update-kubeconfig --name <your_eks_cluster_name>
创建 RisingWave 命名空间。建议为 RisingWave 资源创建一个专用的命名空间。
kubectl create namespace risingwave
values.yml
文件自定义 RisingWave 部署配置。自定义元数据存储:RisingWave 的元数据存储包含集群操作的元数据。查看配置[4]了解所有可用选项和示例[5]了解元数据存储的详细用法。
自定义状态存储:RisingWave 的状态存储是一个容错存储系统,用于保存系统状态。查看配置[6]了解所有可用选项和示例[7]了解状态存储的详细用法。 捆绑 PostgreSQL 和 MinIO:如果你想使用 PostgreSQL
作为元数据存储,使用MinIO
作为状态存储,RisingWave 的 Helm chart 提供了将它们捆绑在一起的选项。这使得 Helm chart 的设置快速简单。查看配置[8] 获取更多详细信息。要启用此功能,请设置tags.bundle=true
。
注意:在使用捆绑的 PostgreSQL
和 MinIO
以及任何本地存储之前,确保你已实施了动态卷配置(Dynamic Volume Provisioning)。
helm install -n risingwave --create-namespace --set wait=true -f values.yaml <my-risingwave> risingwavelabs/risingwave
其中 <my-risingwave>
是你为 RisingWave 部署选择的发布名称。此命令将安装最新的稳定版本的 RisingWave。
如果你想安装特定版本,可以通过 image-tag
属性指定版本。记得将 <version_number>
替换为所需版本,例如 v1.7.0。
helm install -n risingwave --create-namespace --set wait=true --set image.tag=<version_number> <my-risingwave> -f values.yaml risingwavelabs/risingwave
你可能会看到如下输出信息:
NAME: my-risingwave
LAST DEPLOYED: Wed Aug 16 15:35:19 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
kubectl -n risingwave get pods -l app.kubernetes.io/instance=<my-risingwave>
当状态如下所示时,表示 RisingWave 集群成功启动:
NAME READY STATUS RESTARTS AGE
risingwave-compactor-8dd799db6-hdjjz 1/1 Running 1 (8m33s ago) 11m
risingwave-compute-0 2/2 Running 0 11m
risingwave-PostgreSQL-0 1/1 Running 0 11m
risingwave-frontend-7bd7b8c856-czdgd 1/1 Running 1 (8m33s ago) 11m
risingwave-meta-0 1/1 Running 0 11m
risingwave-minio-5cfd8f5f64-6msqm 1/1 Running 0 11m
4访问 RisingWave
默认情况下,RisingWave Helm chart 将部署一个 ClusterIP
服务,启用集群内部通信。
部署后,你可以通过以下命令将本地机器的 4567
端口转发到服务端口:
kubectl -n risingwave port-forward svc/my-risingwave 4567:svc
然后你可以通过 PostgreSQL 客户端连接到 RisingWave,端口为 4567
。例如:
psql -h localhost -p 4567 -d dev -U root
你可以使用监控栈监控 RisingWave 集群。有关详情,请参阅监控 RisingWave 集群[9]。
5调整节点大小(可选)
通过编辑 values.yml
文件中的配置,可以调整工作节点的大小。compactorComponent
部分包含压缩节点的配置。元数据节点和计算节点的配置分别位于 metaComponent
和 computeComponent
部分。有关详情,请参阅自定义不同组件的 pod[10]。
示例:
compactorComponent:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 100m
memory: 64Mi
请注意,增加 CPU 资源不会自动增加现有物化视图的并行度。扩展计算节点时,应遵循集群扩展指南[11] 进行扩展。
Helm 文档: https://helm.sh/docs/intro/install/
[2]硬件要求: https://risingwave.dev/docs/
[3]Kubernetes 入门指南: https://kubernetes.io/docs/setup/
[4]元数据存储配置: https://risingwave.dev/docs/configuration/
[5]元数据存储示例: https://risingwave.dev/docs/examples/
[6]状态存储配置: https://risingwave.dev/docs/configuration/
[7]状态存储示例: https://risingwave.dev/docs/examples/
[8]捆绑 PostgreSQL 和 MinIO 配置: https://github.com/risingwavelabs/helm-charts/blob/main/docs/CONFIGURATION.md#bundled-etcdpostgresqlminio-as-stores
[9]监控 RisingWave 集群: https://risingwave.dev/docs/monitoring/
[10]自定义不同组件的 pod: https://risingwave.dev/docs/customize-pods/
[11]集群扩展指南: https://risingwave.dev/docs/cluster-scaling/
关于 RisingWave
往期推荐
技术内幕