使用helm部署clickhouse

news2024/11/18 17:33:52

(作者:陈玓玏)


前置条件

  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

函数的传入参数-传参定义

基于函数的定义语法: def 函数名(传入参数)函数体return 返回值 可以有如下函数定义: def add(x,y):return xyprint(f"{x} {y}的结果是:{result}") 实现了,每次计算的是xy,而非…

raid0、raid1、raid5、raid10选哪个?一文给你答案!

下午好,我的网工朋友。 关于磁盘阵列的用法,总有朋友对其用途与功能一知半解,很容易弄混。 而我们在做监控项目存储时,经常会用到磁盘阵列。 什么是磁盘阵列?为什么要做磁盘阵列?用什么样的磁盘阵列合适…

三次握手,四次挥手基本概念及其抓包演示

目录 1.tcp三次握手 2.tcp四次挥手 3.思考问题(面试常考) 3.1 三次握手时可能出现什么攻击? 3.2 为什么是三次握手,可不可以是两次,为什么? ​编辑3.3 四次挥手的过程可以用三次完成吗? 4.抓包演示三次握手四次挥手 1.tcp三次握手 tcp协议特点:面向连接的,可靠的,流式…

Vue3 ElementPlus-table组件(合计)合并列

在使用ElementPlus的table组件的时候&#xff0c;我们通常会处理合计&#xff0c;当遇到合计行需要合并列的时候&#xff0c;可以这样做。 核心就是获取标签&#xff0c;对标签的CSS样式进行设置&#xff0c;以达到合并单元格的效果。 Template <el-tablemax-height"ca…

UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

一.颜色叠加混合 1.Blend混合 // 正常&#xff0c;透明度混合 Normal Blend SrcAlpha OneMinusSrcAlpha //柔和叠加 Soft Additive Blend OneMinusDstColor One //正片叠底 相乘 Multiply Blend DstColor Zero //两倍叠加 相加 2x Multiply Blend DstColor SrcColor //变暗…

力扣:链表篇章

1、链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#xff09;。 2、链表的类…

软件开发人员从0到1实现物联网项目:需求分析

文章目录 前言市场调研线下考察竞品参考 项目目标功能需求用户端功能需求商家功能需求系统管理功能需求 非功能需求性能安全性易用性扩展性可靠性 小结 前言 上文对实现自助棋牌室项目涉及到的技术做了调研&#xff0c;尤其是物联网技术。那接下来就是对需求进行一番分析了&am…

Swing不显示图片

文件在同一目录下&#xff0c;这样写运行不显示图片 把路径改为绝对路径 程序正常运行

ubuntu 23开机界面美化教程

效果 方法 GRUB开机界面美化 从上述网站中&#xff0c;查找GRUB Themes分类&#xff0c;并下载GRUB主题包&#xff08;tar.gz格式&#xff09;&#xff0c;如CyberSynchro.tar.gz&#xff1b; 解压下载得到的压缩包&#xff0c;得到CyberSynchro&#xff1b; 将CyberSynchro…

网络安全防御保护 Day7

1.因为FW1和FW2已处于双机热备状态&#xff0c;所以只需要对主设备进行配置即可。进入FW1的配置界面&#xff0c;选择“网络”界面&#xff0c;点击“IPsec”&#xff0c;进行IPsec通道的基本配置&#xff0c;这里选择的是“电信”链路。 2.完成上述配置后&#xff0c;进行待加…

springboot259交通管理在线服务系统的开发

交通管理在线服务系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服务系统软件…

3505. 这也是一道排序题

一、题目 输入 10 7334774857 8461862436 540886577 5245195052 9194400521 5412986878 6694133363 1186771950 1405713915 7115286932 输出 -29430338967 二、思考 构造差分数组&#xff1a;C[i] A[i1] - A[i] 由题目条件可知&#xff1a;当A[i] A[i1] A[i-1] - A[i]时&am…

爱普生高稳定性温补晶振TG-5510CA和TG7050CMN的区别

爱普生之前同期推出过两款高精度温补晶振TCXO(TCXO)&#xff0c;即晶体振荡器TG-5510CA和TG7050CMN。同属性能优异的温补晶振&#xff0c;它们有相同点&#xff0c;也有不同之处。相同的比如&#xff1a;外形尺寸、可输出的频率范围等。不同点在&#xff1a;工作温度、频率/温度…

代码随想录刷题笔记-Day32

1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组&#xff1a;是数组中的一个连续…

实战案例——Kafka集群部署

1. 规划节点 IP主机名节点192.168.100.10zookeeper1集群节点192.168.100.20zookeeper2集群节点192.168.100.30zookeeper集群节点 2. 基础准备 使用ZooKeeper集群搭建的3个节点来构建Kafka集群&#xff0c;因为Kafka服务依赖于ZooKeeper服务&#xff0c; 所以不再多创建云主机…

Spring Boot Configuration Processor使用

一、功能介绍 spring-boot-configuration-processor的作用就是将自己的配置你自己创建的配置类生成元数据信息&#xff0c;这样就能在你自己的配置文件中显示出来非常的方便。在META-INF目录下生成spring-configuration-metadata.json文件&#xff0c;从而告诉spring这个jar包…

大模型GPU监控之nvitop

背景 在进行大模型训练的时候&#xff0c;往往需要用到多张GPU卡&#xff0c;如何实现多卡的管理和监控&#xff0c;这是一个比较好的话题&#xff0c;下面介绍一个小工具。 安装nvitop pip install nvitop nvitop -m full 监控界面

二次封装 element-plus的Table 表格组件,减少代码臃肿

为什么要二次封装element-plus的Table 表格组件&#xff0c;言简意赅&#xff1a;以后难免会在表格里面加一些统一的逻辑&#xff0c;可以在表格里面书写重复的方法或样式 封装后的使用方式 props 参数类型可选值默认值说明tableDataArray——表格数据tableConfigArray——表…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

小程序学习 1

pages/goods/search/home.wxml首页功能设定 1. loading入场 2. 下拉刷新 3. 搜索栏 4. 分类切换 5. 商品列表 6. 规格弹层 7. 加载更多 <view style"text-align: center; color: #b9b9b9" wx:if"{{pageLoading}}"><t-loading theme"circula…