如何用 Docker、K8s 快速部署 StarRocks 集群

0    36    1

Tags:

👉 本文共约3554个字,系统预计阅读时间或需14分钟。

简介

云原生是一种现代化的软件开发和部署方法论。相较于传统的应用开发和部署方式,云原生带来了显著的优势,包括弹性伸缩、应用程序可移植性、高可靠性和自动化部署与管理等方面,从而极大地提升了成本效益和开发效率。

StarRocks 从 3.0 版本开始支持了云原生存储分离架构,有越来越多用户在云上环境部署 StarRocks。Docker 容器化部署是当前最常见的部署方式之一,Docker 利用容器技术打包了 StarRocks 运行环境,简化了部署和运行过程,可以帮助用户实现快速功能验证;Kubernetes 则提供高级的容器编排和管理功能,可用来高效地扩缩容 StarRocks 集群。

接下来,就让我们带大家用一个更简捷的部署方式,通过 Docker/K8s 快速开启 StarRocks 旅程!🚀

准备工作

在正式开始前我们建议你先熟悉 StarRocks 的架构。

StarRocks 的基本架构相当简洁,包括 FE(前端)节点和 BE(后端)节点:FE 负责元数据管理、客户端连接管理、查询计划和查询调度;BE 负责数据存储和 SQL 执行。

如何用 Docker、K8s 快速部署 StarRocks 集群

如果你想了解更多,欢迎利用以下的学习资源:

📝 文档:https://docs.mirrorship.cn/zh-cn/latest/introduction/Architecture

🎞️ 视频:手动构建高可用 StarRocks 集群环境

用 Docker & K8s 快速部署 StarRocks 集群

01Docker--快速性能测试

❗️小贴士:

你可以依照以下步骤部署一个简单的 StarRocks 集群,其中包含一个 FE 节点和一个 BE 节点

使用 Docker 部署的方式目前只建议用在快速**功能测试上,适用于小数据**集验证 DEMO 的情况。不建议你将其用于大规模测试或生产环境。

此快速入门部署了一个 BE 节点。在 CREATE TABLE 子句中,你需要添加属性("replication_num" = "1"),以便只有一个数据副本持久保存在 BE 节点中。

以下操作需要使用的软件:

  • Docker [1]
  • MySQL(作为连接到 StarRocks 的客户端)

第一步:部署 StarRocks

请访问 StarRocks Dockerhub 存储库[2],并根据版本标签选择一个版本。

https://hub.docker.com/r/starrocks/allin1-ubuntu/tags

第二步:连接到 StarRocks

由于部署是一个异步过程,建议在连接到集群之前等待一分钟。使用 MySQL 客户端连接到 StarRocks 集群。

02 StarRocks Kubernetes Operator——在 K8s 上完整运行 StarRocks

以下操作需要使用的软件:

  • StarRocks Kubernetes (K8s) Operator[3]

StarRocks Kubernetes Operator 是由 StarRocks 社区开发的一个实用工具。它可以帮助你使用几行简单的命令将StarRocks 的 FE、BE 和 CN(计算节点)组件部署到你的 K8s 环境中。这种部署方法支持在两个简单步骤中部署任意数量的 FE(至少需要一个 FE)、BE 和 CN 节点。

如何用 Docker、K8s 快速部署 StarRocks 集群

准备工作

你需要一个可运行的 Kubernetes 环境,如果你没有这样的环境,你可以选择以下几个选项:

快速验证测试:

  • 带有 Kubernetes 的 Docker 桌面版[4]
  • Minikube5

或是你也可以使用公有云上的托管 K8s,像是:

  • 阿里云 ACK
  • 腾讯云 TKE
  • AWS EKS
  • GCP GKE

第一步:安装 StarRocks K8s Operator

安装 starrockscluster CRD:

你可以选择在默认的 "starrocks" 命名空间中安装 Operator,也可以选择在自定义的命名空间中安装。

在 StarRocks 命名空间中安装 Operator

默认情况下,Operator 配置为安装在 "starrocks" 命名空间中。你可以通过以下命令来安装:

在自定义命名空间中安装

然而,如果你想在自定义命名空间中安装 Operator,需要下载 Operator Manifest[6] 并将所有命名空间从 "starrocks" 更改为所需的自定义命名空间的名称。

第二步:部署 StarRocks

你需要准备一个单独的 YAML 文件来部署 StarRocks 的 FE、BE 和 CN 组件。StarRocks Kubernetes Operator 的 GitHub 代码库[7]中包含一些示例,可以帮助你入门。

你可以修改示例模板或创建一个新模板,以更好地适应你的用例。Starrocks-kubernetes-operator[8] GitHub 代码库的 README 上有关于如何用 configMap 配置 StarRocks 集群的各种参数以及如何配置存储卷的更多信息。

出于演示目的,我们使用 starrocks-fe-and-be.yaml 示例模板来启动一个 StarRocks 集群。这个 YAML 文件默认启动 3 个 FE 和 3 个 BE,你可以编辑 YAML 文件来更改 FE 的数量(设置为1)或者设置 BE 为其他数量 。

第三步:连接到 StarRocks 集群

从 Kubernetes 集群内部连接

在部署 StarRocks 集群后,你可以使用 kubectl get svc -n <namespace> 命令找到连接的 IP 地址。例如,如果 StarRocks 部署的命名空间是 starrocks,你可以执行以下命令:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
如何用 Docker、K8s 快速部署 StarRocks 集群后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部