用 Helm 在 Kubernetes 中部署 RisingWave 集群

文摘   科技   2024-09-06 16:31   北京  
本文将分享如何通过 Helm 在单个 Kubernetes 集群中部署 RisingWave。

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

注意:在使用捆绑的 PostgreSQLMinIO 以及任何本地存储之前,确保你已实施了动态卷配置(Dynamic Volume Provisioning)。

安装最新的 RisingWave Helm chart:
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] 进行扩展。

参考资料
[1]

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 

RisingWave 是一款基于 Apache 2.0 协议开源的分布式流数据库,致力于为用户提供极致简单、高效的流数据处理与管理能力。RisingWave 采用存算分离架构,实现了高效的复杂查询、瞬时动态扩缩容以及快速故障恢复,并助力用户极大地简化流计算架构,轻松搭建稳定且高效的流计算应用。
RisingWave 始终聆听来自社区的声音,并积极回应用户的反馈。目前,RisingWave 已汇聚了 150+ 名开源贡献者和 3000+ 名社区成员。全球范围内,已有上百个 RisingWave 集群在生产环境中部署。

往期推荐

技术内幕

如何上手 RisingWave 👉 新手入门教程

RisingWave 中文用户文档上线,阅读更高效!

深入探索 RisingWave 中的高可用性与容错机制

深入理解 RisingWave 流处理引擎(三):触发机制

深入理解 RisingWave 流处理引擎(二):计算模型

深入理解 RisingWave 流处理引擎(一):总览

用户案例
视源股份(CVTE)IT 流计算应用历程
尘锋 SCRM 如何使用 RisingWave 实时打宽
RisingWave 在超百亿管理规模对冲基金公司中的应用
金融科技公司 Kaito 使用 RisingWave 实现实时智能化
龙腾出行如何通过 RisingWave 实现实时数据分析
RisingWave 助力乾象投资打造实时监控平台

RisingWave中文开源社区
RisingWave 是一款开源分布式 SQL 流数据库,致力于大幅降低流计算使用门槛与复杂度。RisingWave 已为全球超百家企业构建新一代流处理与分析平台。
 最新文章