​分分钟教你在阿里云 K8s 上部署流数据库 RisingWave

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 本文主要介绍如何在阿里云【容器服务 Kubernetes 版 ACK】上部署 RisingWave 集群。RisingWave当前提供单机试玩模式,以及基于 K8s 的分布式部署模式,生产中我们只推荐后者。K8s 虽然上手门槛高,但只需按照本篇文章的步骤依次操作,你依然能轻松驾驭一个生产集群。

本文主要介绍如何在阿里云【容器服务 Kubernetes 版 ACK】上部署 RisingWave 集群。RisingWave当前提供单机试玩模式,以及基于 K8s 的分布式部署模式,生产中我们只推荐后者。K8s 虽然上手门槛高,但只需按照本篇文章的步骤依次操作,你依然能轻松驾驭一个生产集群。


安装组件

这里首先介绍一个成功部署的 RisingWave 集群在 K8s 上会运行哪些组件:

> kubectl get pods -l app.kubernetes.io/instance=my-risingwave
NAME                                       READY   STATUS    RESTARTS       AGE
my-risingwave-compactor-5c4469c979-njqmd   1/1     Running   1 (107s ago)   2m49s
my-risingwave-compute-0                    2/2     Running   1 (106s ago)   2m49s
my-risingwave-etcd-0                       1/1     Running   0              2m49s
my-risingwave-frontend-7d85dd748b-9hft6    1/1     Running   1 (107s ago)   2m49s
my-risingwave-meta-0                       1/1     Running   0              2m49s
my-risingwave-minio-649b57ddcc-xrvft       1/1     Running   0              2m49s
  • Compactor:负责数据的清理及压缩。在生产中 Compactor 的运行很大程度影响了流计算的性能。
  • Compute:负责流计算以及状态维护等。
  • Etcd:负责元数据存储。
  • Frontend:负责响应用户的 SQL 请求。
  • Meta:用于集群的元信息管理,包括节点健康状态,数据库对象信息,流计算快照点(Checkpoint)的维护等。
  • MinIO(可选):兼容 S3 的对象存储。如用户部署在诸如阿里云,腾讯云等云厂商上,则可直接使用云厂商提供的对象存储服务,无需安装 MinIO。


阿里云 ACK 服务配置

用户在购买及配置阿里云 ACK 服务时,基本可以完全采用默认项。

但需注意,为了稳定流畅运行,RisingWave 对生产中的机器规格有一定要求。具体可参考官方文档 Hardware requirements。这里建议用户购买高于文档中推荐配置的阿里云机型。

除去对 CPU 和内存的要求外,RisingWave 也建议用户选择相对较快的本地磁盘存储以搭配 etcd,避免生产中由于 etcd 的服务异常导致整个集群故障。这里具体的操作如下:

  1. 查询当前K8s中已存在的存储类。阿里云提供数个存储类可供选择(参考),具体如下:
> kubectl get storageclass
NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
alicloud-disk-available          diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   5h37m
alicloud-disk-efficiency         diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   5h37m
alicloud-disk-essd               diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   5h37m
alicloud-disk-ssd                diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   5h37m
alicloud-disk-topology           diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   5h37m
alicloud-disk-topology-alltype   diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   5h37m
  1. 我们直接将 alicloud-disk-essd 设置为默认存储类:
> kubectl annotate storageclass alicloud-disk-essd storageclass.kubernetes.io/is-default-class=true
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"alicloud-disk-ssd"},"parameters":{"type":"cloud_ssd"},"provisioner":"diskplugin.csi.alibabacloud.com","reclaimPolicy":"Delete"}
    storageclass.kubernetes.io/is-default-class: "true"
  1. 请在 metadata → annotations 的子项中加上 storageclass.kubernetes.io/is-default-class: "true",这将会设置该存储类为默认。这意味着它会自动购买并挂载阿里云ESSD云盘


集群安装

接着按照 RisingWave Helm 部署文档 的步骤来进行安装部署即可。需注意的是,该流程要求使用 Helm 3.7+ 版本,而**阿里云 CloudShell** 所预装的 Helm 版本仅为 3.5,因此我们不建议通过CloudShell来执行操作。

  1. 首先安装 RisingWave 的 Helm Chart
helm repo add risingwavelabs <https://risingwavelabs.github.io/helm-charts/>
  1. 确保你正在使用最新的 Helm Chart
helm repo update
  1. 注意!!:本地编辑 values.yml 文件并配置 etcd 的存储空间为 20GB。这是因为阿里云不允许申请小于 20GB 的块存储。
etcd:
  persistence:
    size: 20Gi
  1. 本地编辑 values.yml 并配置后端存储为**阿里云 OSS 对象存储服务**。请按注释正确填入:
tags:
  minio: false
stateStore:
  minio:
    enabled: false
  oss:
    enabled: true
    region: # OSS 地域,如 cn-beijing
    bucket: # OSS bucket name
    root: risingwave
    useInternalEndpoint: false
    authentication:
      useServiceAccount: false
      # 具体请参考 <https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair>
      accessKey: # 阿里云 Access Key
      secretKey: # 阿里云 Secret Key
  1. 通过 Helm 安装 RisingWave 集群:
helm install --set wait=true -f values.yml my-risingwave risingwavelabs/risingwave
  1. 你可以将 my-risingwave 替代为任何其他合法名字。
  2. 确认 RisingWave 是否已被成功安装。往往完成安装需花费 3-5 分钟。
> kubectl get pods -l app.kubernetes.io/instance=my-risingwave
NAME                                      READY   STATUS    RESTARTS        AGE
my-risingwave-compactor-8dd799db6-hdjjz   1/1     Running   1 (8m33s ago)   11m
my-risingwave-compute-0                   2/2     Running   0               11m
my-risingwave-etcd-0                      1/1     Running   0               11m
my-risingwave-frontend-7bd7b8c856-czdgd   1/1     Running   1 (8m33s ago)   11m
my-risingwave-meta-0                      1/1     Running   0               11m


访问集群

K8s 提供多种网络访问模式,分别为:

  • ClusterIP
  • NodePort
  • LoadBalancer

RisingWave 默认采用 ClusterIP,即仅允许同一K8s集群内的服务之间相互联通

为便于测试和开发,用户可以借 API Server 路由来访问  RisingWave:

kubectl port-forward svc/my-risingwave 4567:svc

随后用户即可通过psql或其他Postgres客户端来访问 RisingWave:

psql -h localhost -p 4567 -d dev -U root


卸载集群

如要完整下线该 RisingWave 集群,您需要执行以下操作:

  1. 下线所有的 Pod
helm uninstall my-risingwave
  1. 删除所有的 存储卷(PersistenVolume)
kubectl delete pvc -l app.kubernetes.io/instance=my-risingwave
  1. 参考 OSS 文档 删除 OSS 中的数据
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
1
0
0
分享
相关文章
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
客户说|知乎基于阿里云PolarDB,实现最大数据库集群云原生升级
近日,知乎最大的风控业务数据库集群,基于阿里云瑶池数据库完成了云原生技术架构的升级。此次升级不仅显著提升了系统的高可用性和性能上限,还大幅降低了底层资源成本。
媒体声音|从亚太到欧美,阿里云瑶池数据库凭何成为中企出海的技术底气?
在中企出海的时代浪潮中,瑶池数据库正凭借其技术创新、场景化解决方案、智能化能力、全球化布局,成为企业跨越挑战、构建全球竞争力的关键伙伴;同时也以硬核的技术实力证明了中国数据库的国际竞争力。
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
【倒计时3天】NineData x Apache Doris x 阿里云联合举办数据库技术Meetup,5月24日深圳见!
5月24日,NineData联合Apache Doris与阿里云在深圳举办数据库技术Meetup。活动聚焦「数据实时分析」与「数据同步迁移」两大领域,邀请行业专家分享技术趋势、产品实践及解决方案,助力企业构建高效安全的数据管理体系。时间:14:00-17:30;地点:深圳新一代产业园2栋20楼会议室。线下名额有限(80人),速报名参与深度交流!
67 1
阿里云《快速连接云数据库RDS》训练营,火热开营中!
快速连接云数据库 RDS 训练营开营啦!从 0 到 1 学习实战技能,涵盖 RDS MySQL 快速连接、DMS 数据管理及 SQL 实战案例。完成任务赢取专业飞盘、积木等好礼(限量 100 份)
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
90 9
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
360 33

数据库

+关注

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问