1. RadonDB ClickHouse简介
[RadonDB ClickHouse](RadonDB ClickHouse) 是基于 ClickHouse 的开源、高可用、云原生集群解决方案。RadonDB ClickHouse Kubernetes 致力于在 Kubernetes 上轻便快速创建 ClickHouse 集群。
参考文档:
2. Helm方式安装ClickHouse
安装方式选择helm,参考文档Deploy Radondb ClickHouse On kubernetes。
不要参考Deploy Radondb ClickHouse On kubernetes中文版,按照这个配置是有问题的。
Step 1 : Add Helm Repository
1 | helm repo add ck https://radondb.github.io/radondb-clickhouse-kubernetes/ |
Step 2 : Install to Kubernetes
1 | kubectl create ns clickhouse |
上面的安装命令会使用默认的values,这里可以指定一些自定义配置。
需要注意的是,clickhouse和zk依赖pv,如果没有指定,那么会使用集群中默认的storageclass创建pv。
Step 3 : Verification
1 | kubectl get all -n clickhouse |
3. 访问ClickHouse
3.1. 使用pod执行命令
测试执行一条query命令:
1 | kubectl exec -it clickhouse-s0-r0-0 -n clickhouse -- clickhouse-client -u default --password=C1ickh0use --query='select hostName()' |
3.2. 通过service访问clickhouse执行命令
1 | kubectl get service -n clickhouse | grep clickhouse |
3.3. 查看配置
1 | kubectl get cm clickhouse-configuration -n clickhouse -oyaml |
4. 开放service给集群外机器
1、导出service yaml
1 | kubectl get service -n clickhouse -oyaml > ck.yaml |
2、修改spec部分为
1 | spec: |
其中9000是原生协议端口,8123是HTTP端口,8443是HTTPS端口。详情参考ClickHouse - Network ports
3、修改service
1 | kubectl apply -f ck.yaml |
4、测试
1 | echo 'select hostname()' | curl 'http://default:C1ickh0use@192.168.56.112:30123/' --data-binary @- |
其中192.168.56.112
是一个集群节点IP。
5. 使用ClickHouse
参考文档《Clickhouse入门篇》
6. 其他
6.1. 清理clickhouse-operator
除了使用helm安装ch之外,还可以使用kubesphere安装ch,但是安装失败了。
参考在 KubeSphere 中部署 ClickHouse 集群,部署时卡在了教程中的步骤3,报错:
Error: unable to build kubernetes objects from release manifest: unable to recognize “”: no matches for kind “clickhouseinstallation” in version “clickhouse.radondb.com/v1”
缺少CRD clickhouseinstallation,理论上直接安装一下这个CRD就可以。但是最开始没有意识到这个问题,也没有检索到解决办法,因此选择了使用helm的方式进行重装,那就需要清理教程中步骤1安装的clickhouse-operator。
预期结果中的资源需要全部删除,大都在kube-system空间。
1 | customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.radondb.com created |