使用helm部署clickhouse

(作者:陈玓玏)


前置条件

  1. 已安装 Kubernetes 集群;
    在这里插入图片描述
  2. 已安装 Helm 包管理工具。
    在这里插入图片描述

部署

1 添加 RadonDB ClickHouse 的 Helm 仓库

helm repo add ck https://radondb.github.io/radondb-clickhouse-kubernetes/
helm repo update

2 部署 RadonDB ClickHouse Operator

helm install clickhouse-operator ck/clickhouse-operator

3 部署 RadonDB ClickHouse 集群

helm install clickhouse ck/clickhouse-cluster

完成这几步之后查看k8sdashboard,发现clickhouse的zk部署出现了问题,pv有问题,0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.。
在这里插入图片描述

这里的原因是pvc创建之后没有申请到合适的pv,查看k8sdashboard发现没有available的pv,所以手动创建pv,需要注意spec中accessModes和storage等需要匹配pvc,yaml文件如下:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: data-zk-clickhouse-0
spec:
  capacity:
    storage: 20Gi
  hostPath:
    path: /home/clickhouse/zk0
    type: ''
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  volumeMode: Filesystem

我是直接复制的现成的yaml文件改的,所以有些冗余的内容,但只要关键内容对就行了。一共有3个没有匹配上pv的pvc,所以我们创建3个pv就可以了。

修改后发现pvc都正常了。
在这里插入图片描述
会有几个pod起得慢些,如果再出现类似问题,继续创建pv即可解决,我一共建了5个pv。

但仍然有pod不正常的问题,显示Back-off restarting failed container,一直重启一直失败,查看日志发现报错是mkdir: cannot create directory ‘/var/lib/zookeeper/data’: Permission denied。
在这里插入图片描述
这个问题的解决方案,目前只找到一个修改权限,改为root权限的,可能不是最好的,但修改后确实pod可用了,具体是将zk-clickhouse的yaml文件中的spec部分修改securityContext,原来都是1000,没有创建文件的权限。

securityContext:
  runAsUser: 0
  fsGroup: 0

在这里插入图片描述
比较神奇的事情是,一开始不是root权限,修改为root权限后,文件夹创建成功,再修改为非ro
ot权限后,再重启pod依然是ok的,猜测可能是后续不需要再创建文件夹了,因为挂载目录下的文件夹已经存在,其他操作又都不需要root权限。所以觉得改为root权限不好的,pod启动成功后可以再改回去试试。

使用

apt install -y clickhouse-client

部署clickhouse客户端
连接clickhouse,需要从values.yaml里获取账号密码,所以需要用helm pull ck/clickhouse-cluster下载,然后用tar zxvf解压,再用账号密码登录。
clickhouse-client --user=clickhouse --host=10.43.234.214 --port=9000 --password="c1ickh0use0perator"在这里插入图片描述
连接成功。
在这里插入图片描述

参考链接:

https://github.com/strimzi/strimzi-kafka-operator/issues/1720
https://xie.infoq.cn/article/bb976ac9d5a540cc196921cbe

相关推荐

  1. helm系列之-使用helm部署应用

    2024-03-12 23:58:05       24 阅读
  2. 使用helm部署 redis 单机版

    2024-03-12 23:58:05       53 阅读
  3. ClickHouse安装和部署

    2024-03-12 23:58:05       75 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 23:58:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 23:58:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 23:58:05       82 阅读
  4. Python语言-面向对象

    2024-03-12 23:58:05       91 阅读

热门阅读

  1. 单片机开发-实现Zigbee的LED灯交替闪烁

    2024-03-12 23:58:05       35 阅读
  2. 普通人改变命运的5次机会,你抓住了吗?

    2024-03-12 23:58:05       41 阅读
  3. vue的路由懒加载

    2024-03-12 23:58:05       44 阅读
  4. 【C++】每日一题 86 分隔链表

    2024-03-12 23:58:05       41 阅读
  5. 突破编程_C++_设计模式(迭代模式)

    2024-03-12 23:58:05       35 阅读
  6. 基于单片机的储油罐液位无线监测系统

    2024-03-12 23:58:05       47 阅读
  7. 【C++ 23种设计模式】

    2024-03-12 23:58:05       79 阅读
  8. leetcode 2386. 找出数组的第 K 大和【小根堆】

    2024-03-12 23:58:05       44 阅读
  9. DDR3 NATIVE接口

    2024-03-12 23:58:05       37 阅读