使用 Helm 部署 StarRocks 集群
Helm 是 Kubernetes 的包管理工具。Helm Chart 是 Helm 包,包含在 Kubernetes 集群上运行应用程序所需的所有资源定义。本文介绍如何在 Kubernetes 集群上使用 Helm 自动化部署 StarRocks 集群。
环境准备
部署操作
- 
添加 StarRocks 的 Helm Chart Repo。Helm Chart 包括 StarRocks Operator 和定制资源 StarRocksCluster 的定义。 - 
添加 Helm Chart Repo。 helm repo add starrocks https://starrocks.github.io/starrocks-kubernetes-operator
- 
更新 Helm Chart Repo 至最新版本。 helm repo update
- 
查看所添加的 Helm Chart Repo。 $ helm search repo starrocks
 NAME CHART VERSION APP VERSION DESCRIPTION
 starrocks/kube-starrocks 1.8.0 3.1-latest kube-starrocks includes two subcharts, starrock...
 starrocks/operator 1.8.0 1.8.0 A Helm chart for StarRocks operator
 starrocks/starrocks 1.8.0 3.1-latest A Helm chart for StarRocks cluster
 
- 
- 
您可以使用 Helm Chart 默认的 values.yaml 来部署 StarRocks Operator 和 StarRocks 集群,也可以新建 YAML 文件并且自定义配置来部署。 - 
使用默认配置进行部署。 执行如下命令,部署 StarRocks Operator 和 StarRocks 集群。StarRocks 集群包含一个 FE 和一个 BE。 $ helm install starrocks starrocks/kube-starrocks
 # 返回如下结果,表示正在部署 StarRocks Operator 和 StarRocks 集群。
 NAME: starrocks
 LAST DEPLOYED: Tue Aug 15 15:12:00 2023
 NAMESPACE: starrocks
 STATUS: deployed
 REVISION: 1
 TEST SUITE: None
- 
使用自定义配置进行部署。 - 
创建一个 YAML 文件,例如 my-values.yaml,在 YAML 文件中自定义 StarRocks Operator 和 StarRocks 集群的配置信息。支持配置的参数和说明,请参见 Helm Chart 默认的 values.yaml 中的注释。 
- 
执行如下命令,使用 my-values.yaml 中的自定义配置部署 StarRocks Operator 和 StarRocks 集群。 helm install -f my-values.yaml starrocks starrocks/kube-starrocks
 部署需要一定时间。期间,您可以根据上述部署命令返回结果中的提示命令查询部署状态,默认的提示命令如下: $ kubectl --namespace default get starrockscluster -l "cluster=kube-starrocks"
 # 状态显示为 running,则表示已经成功部署。
 NAME FESTATUS CNSTATUS BESTATUS
 kube-starrocks running running您也可以执行 kubectl get pods查看部署状态。如果所有 Pod 处于Running状态且 Pod 内所有容器都READY,则表示已经成功部署。$ kubectl get pods
 NAME READY STATUS RESTARTS AGE
 kube-starrocks-be-0 1/1 Running 0 2m50s
 kube-starrocks-fe-0 1/1 Running 0 4m31s
 kube-starrocks-operator-69c5c64595-pc7fv 1/1 Running 0 4m50s
- 
 
- 
后续步骤
- 
访问 StarRocks 集群 支持从 Kubernetes 集群内外访问 StarRocks 集群,具体操作,请参见访问 StarRocks 集群。 
- 
管理 StarRocks Operator 和 StarRocks 集群 - 
如果需要更新 StarRocks Operator 和 StarRocks 集群的配置,请参见 Helm Upgrade。 
- 
如果需要卸载 StarRocks Operator 和 StarRocks 集群,可以执行如下命令: helm uninstall starrocks
 
- 
更多信息
- 
Github 仓库的地址:starrocks-kubernetes-operator 和 kube-starrocks Helm Chart 
- 
Github 仓库中的指导文档包含更多信息,例如: - 
如果需要通过 Kubernetes API 管理对象,例如 StarRocks 集群,参见 API refenrence。 
- 
如果需要挂载持久卷到 FE 和 BE pods,来存储 FE 元数据和日志,以及 BE 数据和日志,参见 Mounting Persistent Volumes by Helm Chart。 危险如果您未挂载持久卷,则 StarRocks Operator 将使用 emptyDir 来存储 FE 元数据和日志,以及 BE 数据和日志。当容器重新启动时,这些数据将丢失。 
- 
如果需要设置 root 用户密码: - 
部署 StarRocks 集群后手动设置 root 用户的密码,参见Change root user password HOWTO。 
- 
部署 StarRocks 集群时自动设置 root 用户的密码,参见Initializing the Root User Password in StarRocks。 
 
- 
 
- 
- 
部署 StarRocks 存算一体集群,并且执行建表语句后,出现如下报错,该如何解决: - 
报错信息 ERROR 1064 (HY000): Table replication num should be less than or equal to the number of available BE nodes. You can change this default by setting the replication_num table properties. Current alive backend is [10001]. , table=orders1, default_replication_num=3
- 
解决措施 可能是因为 StarRocks 存算一体集群中只有一个 BE,仅支持副本数量为 1,但是默认的副本数量为 3。您可以在 PROPERTIES 中修改副本数为 1,即 PROPERTIES( "replication_num" = "1" )。
 
- 
- 
Artifict Hub 上 StarRocks 维护的 Helm Chart 地址:kube-starrocks。