(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务

前言

前面的博客内容我们已经实现了zookeeper版的高可用kafka集群服务,在新版的kafka内容中,已经使用raft协议实现kafka集群的通信,可以不再依赖zookeeper集群,虽然属于实验阶段,但相信未来肯定会成为取代zookeeper的最优方案,并且raft协议已经在redis中得到了充分的实践和验证。话不多说,开始我们本节内容。

正文

  • 关于kafka镜像的说明

- 这里我们依然使用ydockerp/kafka:3.1.0镜像完成本节内容的案例实战

  • kafka集群服务搭建

 - 点击应用负载-服务-创建-有状态服务 

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第1张图片

- 填写kafka基本配置信息,点击下一步

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第2张图片

- 选择容器组副本数量为3,点击添加容器镜像

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第3张图片

- 加载kafka容器镜像ydockerp/kafka:3.1.0,加载成功后,并点击使用默认端口 

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第4张图片

- kakfa集群需要获取配置文件的controller.quorum.voters这个参数的值,用于集群通信,根据k8s中服务的生成规则,本集群的controller.quorum.voters为

[email protected]:9093,[email protected]:9093,[email protected]:9093

这里需要注意的是@前面的值是我们k8s生成多副本的索引值,我们kafka集群中node.id参数值也是取自该值,app-kafka-raft是我们前面填写配置信息的名称,即pod的名称,app-kafka-raft-v1-0是k8s根据配置信息的名称和版本号生成的pod容器的主机名称,app是我们k8s的命名空间namespace,svc.cluster.local是固定写法,最终形成的app-kafka-raft-v1-0.app-kafka-raft.app.svc.cluster.local就是容器中pod相互访问的服务名,这里我们有三个副本,那就写三个副本服务的服务名用逗号分割。这里服务名称是k8s服务的固定命名方式,不懂的可以查看k8s的官方说明文档。

- 填写controller.quorum.voters集群通信的环境变量配置CONTROLLER_QUORUM_VOTERS,该值是镜像的环境变量配置,固定写法,不能修改,镜像中controller.quorum.voters是根据该CONTROLLER_QUORUM_VOTERS环境变量取值的。并勾选同步主机时区,点击对号。点击下一步。

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第5张图片

- 添加存储卷模板

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第6张图片

- 填写pvc存储卷基本配置信息,勾选对号,点击下一步

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第7张图片

 - 点击创建,完成kafka集群创建

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第8张图片

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第9张图片

  • 验证 kafka集群服务搭建

- 点击进入kafka的任意一个节点

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第10张图片

- 通过kafka命令创建一个kafka的主题first

#创建主题
./bin/kafka-topics.sh --bootstrap-server app-kafka-raft-v1-2.app-kafka-raft.app.svc.cluster.local:9092 --create --topic first --partitions 3 --replication-factor 3

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第11张图片

 - 通过kafka命令查询创建的主题详细信息

./bin/kafka-topics.sh --bootstrap-server app-kafka-raft-v1-2.app-kafka-raft.app.svc.cluster.local:9092 --describe --topic first

(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务_第12张图片

结语

到这里使用KubeSphere管理平台搭建一个高可用的raft版kafka集群服务就结束了,创作不易,别忘了关注、收藏、加点赞哦,我们下期见。。。

你可能感兴趣的:(kubesphere,k8s,MQ,kubernetes,云原生,容器)