一个计算机技术爱好者与学习者

0%

好好学K8S:K8S中安装配置ClickHouse

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
2
3
kubectl create ns clickhouse
helm search repo ck/clickhouse-cluster -l
helm install clickhouse ck/clickhouse-cluster -n clickhouse --version v1.0

上面的安装命令会使用默认的values,这里可以指定一些自定义配置

需要注意的是,clickhouse和zk依赖pv,如果没有指定,那么会使用集群中默认的storageclass创建pv。

Step 3 : Verification

1
2
kubectl get all -n clickhouse
kubectl get all --selector app.kubernetes.io/instance=clickhouse -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
2
kubectl get service -n clickhouse | grep clickhouse
echo 'select hostname()' | curl 'http://default:C1ickh0use@10.96.71.193:8123/' --data-binary @-

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
spec:
ports:
- name: native
port: 9000
protocol: TCP
targetPort: 9000
nodePort: 31000
- name: http
port: 8123
protocol: TCP
targetPort: 8123
nodePort: 30123
selector:
app.kubernetes.io/instance: clickhouse
app.kubernetes.io/name: clickhouse-cluster
clickhouse/component: clickhouse
sessionAffinity: None
type: NodePort

其中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
2
3
4
5
6
7
8
9
10
11
12
13
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
  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-k8s-clickhouse/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~