使用 Helm 部署 StarRocks
Helm 是 Kubernetes 的包管理器。Helm Chart 是 Helm 包,其中包含在 Kubernetes 集群上运行应用程序所需的所有资源定义。 本主题介绍如何使用 Helm 在 Kubernetes 集群上自动部署 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 和由一个 FE 和一个 BE 组成的 StarRocks 集群
提示
默认
values.yaml
配置为部署- 具有 1/2CPU 和 0.8GB RAM 的 Operator Pod
- 具有 4GB RAM、4 个内核和 15Gi 磁盘的一个 FE
- 具有 4GB RAM、4 个内核和 1Ti 磁盘的一个 BE
如果您的 Kubernetes 集群中没有这些可用资源,请跳至使用自定义配置部署部分并调整资源。
$ helm install starrocks starrocks/kube-starrocks
# If the following result is returned, the StarRocks Operator and StarRocks cluster are being deployed.
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"
如果返回以下结果,则表示部署已成功完成。
NAME PHASE FESTATUS BESTATUS CNSTATUS FEPROXYSTATUS
kube-starrocks running 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 参考。
-
如果您需要将持久卷挂载到 FE 和 BE Pod 以存储 FE 元数据和日志,以及 BE 数据和日志,请参阅 通过 Helm Chart 挂载持久卷。
危险如果未挂载持久卷,StarRocks Operator 将使用 emptyDir 来存储 FE 元数据和日志,以及 BE 数据和日志。 当容器重新启动时,数据将会丢失。
-
如果您需要设置 root 用户密码
-
部署 StarRocks 集群后手动设置 root 用户的密码,请参阅 更改 root 用户密码 HOWTO。
-
在部署 StarRocks 集群时自动设置 root 用户的密码,请参阅 初始化 root 用户密码。
-
-
-
如何解决在 StarRocks shared-data 集群中执行 CREATE TABLE 语句后发生的以下错误。
-
错误消息
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 shared-data 集群中只有一个 BE,该 BE 仅支持一个副本。 但是,默认副本数为 3。 您可以在 PROPERTIES 中将副本数修改为 1,例如
PROPERTIES( "replication_num" = "1" )
。
-
-
StarRocks 在 Artifact Hub 上维护的 Helm Chart 的地址:kube-starrocks。