在 KubeSphere 中部署 ClickHouse 集群
ClickHouse 是一款用于联机分析 (OLAP) 的列式数据库管理系统 (DBMS)。RadonDB ClickHouse 是一款深度定制的 ClickHouse 集群应用,完美保持了 ClickHouse 集群功能特性,并具备集群自动管理、集群数据重分布、高性能低成本等优势功能特性。
本教程演示了如何在 KubeSphere 上部署 ClickHouse Operator 和 ClickHouse 集群。
准备工作
- 请确保已启用 OpenPitrix 系统。
- 您需要创建一个企业空间、一个项目和一个用户帐户 (
project-regular
) 供本教程操作使用。该帐户需要是平台普通用户,并邀请至项目中赋予operator
角色作为项目操作员。本教程中,请以project-regular
身份登录控制台,在企业空间demo-workspace
中的demo-project
项目中进行操作。有关更多信息,请参见创建企业空间、项目、用户和角色。 - 请确保 KubeSphere 项目网关已开启外网访问。有关更多信息,请参见项目网关。
动手实验
步骤 1:部署 ClickHouse Operator
-
以
admin
身份登录 KubeSphere 的 Web 控制台,并使用工具箱中的 Kubectl 执行以下命令来安装 ClickHouse Operator。建议至少准备 2 个可用集群节点。$ kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-clickhouse-kubernetes/main/clickhouse-operator-install.yml
备注
ClickHouse Operator 将会被安装在kube-system
命名空间下,因此一个 Kubernetes 集群只需要安装一次 ClickHouse Operator。预期结果
$ kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-clickhouse-kubernetes/main/clickhouse-operator-install.yml customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.radondb.com created customresourcedefinition.apiextensions.k8s.io/clickhouseinstallationtemplates.clickhouse.radondb.com created customresourcedefinition.apiextensions.k8s.io/clickhouseoperatorconfigurations.clickhouse.radondb.com created serviceaccount/clickhouse-operator created clusterrole.rbac.authorization.k8s.io/clickhouse-operator-kube-system created clusterrolebinding.rbac.authorization.k8s.io/clickhouse-operator-kube-system created configmap/etc-clickhouse-operator-files created configmap/etc-clickhouse-operator-confd-files created configmap/etc-clickhouse-operator-configd-files created configmap/etc-clickhouse-operator-templatesd-files created configmap/etc-clickhouse-operator-usersd-files created deployment.apps/clickhouse-operator created service/clickhouse-operator-metrics created
-
执行如下命令可查看 ClickHouse Operator 资源状态。
$ kubectl get all --selector=app=clickhouse-operator -n kube-system
预期结果
NAME READY STATUS RESTARTS AGE pod/clickhouse-operator-644fcb8759-9tfcx 2/2 Running 0 4m32s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/clickhouse-operator-metrics ClusterIP 10.96.72.49 <none> 8888/TCP 4m32s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/clickhouse-operator 1/1 1 1 4m32s NAME DESIRED CURRENT READY AGE replicaset.apps/clickhouse-operator-644fcb8759 1 1 1 4m32s
步骤 2:添加应用仓库
-
以
ws-admin
身份登录 KubeSphere 的 Web 控制台。在企业空间中,进入应用管理下的应用仓库页面,点击添加。 -
在出现的对话框中,输入
clickhouse
作为应用仓库名称,输入https://radondb.github.io/radondb-clickhouse-kubernetes/
作为仓库的 URL。点击验证以验证 URL。在 URL 旁边呈现一个绿色的对号,验证通过后,点击确定继续。 -
将仓库成功导入到 KubeSphere 之后,在列表中可查看 ClickHouse 仓库。
步骤 3:部署 ClickHouse 集群
-
以
project-regular
身份登录 KubeSphere 的 Web 控制台。在demo-project
项目中,进入应用负载下的应用页面,点击创建。 -
在对话框中,选择从应用模板。
-
从下拉菜单中选择
clickhouse
应用仓库 ,然后点击 clickhouse-cluster。 -
在Chart 文件选项卡,可以直接通过控制台查看配置信息,也可以通过下载默认
values.yaml
文件查看。在版本列框下,选择一个版本号,点击安装以继续。 -
在基本信息页面,确认应用名称、应用版本以及部署位置。点击下一步以继续。
-
在应用配置页面,可以编辑
values.yaml
文件,也可以直接点击安装使用默认配置。 -
等待 ClickHouse 集群正常运行。可在工作负载下的应用页面,查看部署的应用。
步骤 4:查看 ClickHouse 集群状态
-
以
project-regular
身份登录 KubeSphere 的 Web 控制台。 -
进入应用负载下的工作负载页面,点击有状态副本集,查看集群状态。
进入一个有状态副本集群详情页面,点击监控标签页,可查看一定时间范围内的集群指标。
-
进入应用负载下的容器组页面,可查看所有状态的容器。
-
进入存储下的存储卷页面,可查看存储卷,所有组件均使用了持久化存储。
查看某个存储卷用量信息,以其中一个数据节点为例,可以看到当前存储的存储容量和剩余容量等监控数据。
-
在项目概览页面,可查看当前项目资源使用情况。
步骤 5:访问 ClickHouse 集群
-
以
admin
身份登录 KubeSphere 的 Web 控制台,将鼠标悬停在右下角的锤子图标上,选择 Kubectl。 -
打开终端窗口,执行如下命令,并输入 ClickHouse 集群用户名和密码。
$ kubectl edit chi <app name> -n <project name>
备注
以下命令示例中 app name 为clickhouse-app
,project name 为demo-project
。 -
执行如下命令,访问 ClickHouse 集群,并可通过
show databases
命令查看数据库。$ kubectl exec -it <pod name> -n <project name> -- clickhouse-client --user=<user name> --password=<user password>
备注
-
以下命令示例中 pod name 为
chi-clickhouse-app-all-nodes-0-1-0
,project name 为demo-project
,user name 为clickhouse
,password 为clickh0use0perator
。 -
可在应用负载的容器组下获取 pod name。
-
反馈
这篇文章对您有帮助吗?
通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。