• RadonDB
  • 在 KubeSphere 中部署 ClickHouse 集群

ClickHouse 是一款用于联机分析 (OLAP) 的列式数据库管理系统 (DBMS)。ClickHouse on QingCloud 是一款深度定制的 ClickHouse 集群应用,完美保持了 ClickHouse 集群功能特性,并具备集群自动管理、集群数据重分布、高性能低成本等优势功能特性。

本教程演示了如何在 KubeSphere 上部署 ClickHouse Operator 和 ClickHouse 集群。

准备工作

  • 请确保已启用 OpenPitrix 系统
  • 您需要创建一个企业空间、一个项目和一个用户帐户 (project-regular) 供本教程操作使用。该帐户需要是平台普通用户,并邀请至项目中赋予 operator 角色作为项目操作员。本教程中,请以 project-regular 身份登录控制台,在企业空间 demo-workspace 中的 demo-project 项目中进行操作。有关更多信息,请参见创建企业空间、项目、帐户和角色

动手实验

步骤 1:部署 ClickHouse Operator

  1. 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。

预期结果

   customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.com configured
   customresourcedefinition.apiextensions.k8s.io/clickhouseinstallationtemplates.clickhouse.altinity.com created
   customresourcedefinition.apiextensions.k8s.io/clickhouseoperatorconfigurations.clickhouse.altinity.com created
   serviceaccount/clickhouse-operator 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
  1. 执行如下命令可查看 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:添加应用仓库

  1. ws-admin 身份登录 KubeSphere 的 Web 控制台。在企业空间中,进入应用管理下的应用仓库页面,点击添加仓库

add-repo

  1. 在出现的对话框中,输入 clickhouse 作为应用仓库名称,输入 https://radondb.github.io/radondb-clickhouse-kubernetes/ 作为仓库的 URL。点击验证以验证 URL。在 URL 旁边呈现一个绿色的对号,验证通过后,点击确定继续。

add-clickhouse

  1. 将仓库成功导入到 KubeSphere 之后,在列表中可查看 ClickHouse 仓库。

repo-added

步骤 3:部署 ClickHouse 集群

  1. project-regular 身份登录 KubeSphere 的 Web 控制台。在 demo-project 项目中,进入应用负载下的应用页面,点击部署新应用

click-deploy-new-app

  1. 在对话框中,选择来自应用模板

from-app-templates

  1. 从下拉菜单中选择 clickhouse 应用仓库 ,然后点击 clickhouse-cluster

clickhouse-cluster

  1. 配置文件选项卡,可以直接通过控制台查看配置信息,也可以通过下载默认 values.yaml 文件查看。在版本列框下,选择一个版本号,点击部署以继续。

chart-tab

  1. 基本信息页面,确认应用名称、应用版本以及部署位置。点击下一步以继续。

basic-info

  1. 应用配置页面,可以编辑 values.yaml 文件,也可以直接点击部署使用默认配置。

click-deploy

  1. 等待 ClickHouse 集群正常运行。可在工作负载下的应用页面,查看部署的应用。

app-running

步骤 4:查看 ClickHouse 集群状态

  1. project-regular 身份登录 KubeSphere 的 Web 控制台。

  2. 进入应用负载下的工作负载页面,点击有状态副本集,查看集群状态。

statefulsets-running

进入一个有状态副本集群详情页面,点击监控标签页,可查看一定时间范围内的集群指标。

statefulset-monitoring

  1. 进入应用负载下的容器组页面,可查看所有状态的容器。

pods-running

  1. 进入存储管理下的存储卷页面,可查看存储卷,所有组件均使用了持久化存储。

volumes

查看某个存储卷用量信息,以其中一个数据节点为例,可以看到当前存储的存储容量和剩余容量等监控数据。

volume-status

  1. 在项目概览页面,可查看当前项目资源使用情况。

project-overview

步骤 5:访问 ClickHouse 集群

  1. admin 身份登录 KubeSphere 的 Web 控制台,将鼠标悬停在右下角的锤子图标上,选择 Kubectl

  2. 打开终端窗口,执行如下命令,并输入 ClickHouse 集群用户名和密码。


kubectl edit chi <app name> -n <project name>

以下命令示例中 app nameclickhouse-appproject namedemo-project

get-username-password

  1. 执行如下命令,访问 ClickHouse 集群,并可通过 show databases 命令查看数据库。
kubectl exec -it <pod name> -n <project name> --clickhouse-client --user=<user name> --password=<user password>
  • 以下命令示例中 pod namechi-clickhouse-app-all-nodes-0-1-0project namedemo-projectuser nameclickhousepasswordclickh0use0perator

  • pod name 可在应用负载容器组下获取。

use-clickhouse

KID-G 更改标题为「在 KubeSphere 中部署 ClickHouse 集群
6 个月 后

我是admin 身份登录 KubeSphere 的 Web 控制台,并使用工具箱中的 Kubectl 执行以下命令

解决办法:

admin 身份登录 KubeSphere 的 Web 控制台,并使用工具箱中的 Kubectl 执行 失败,没有成功

我是在主机节点上执行的,

vim /etc/hosts

###增加下面的解析

199.232.68.133 raw.githubusercontent.com

199.232.68.133 user-images.githubusercontent.com

199.232.68.133 avatars2.githubusercontent.com

199.232.68.133 avatars1.githubusercontent.com