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

Posted 北溟溟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务相关的知识,希望对你有一定的参考价值。

前言

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

正文

  • 关于kafka镜像的说明

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

  • kafka集群服务搭建

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

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

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

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

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

0@app-kafka-raft-v1-0.app-kafka-raft.app.svc.cluster.local:9093,1@app-kafka-raft-v1-1.app-kafka-raft.app.svc.cluster.local:9093,2@app-kafka-raft-v1-2.app-kafka-raft.app.svc.cluster.local: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环境变量取值的。并勾选同步主机时区,点击对号。点击下一步。

- 添加存储卷模板

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

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

  • 验证 kafka集群服务搭建

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

- 通过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

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

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

结语

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

以上是关于(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务的主要内容,如果未能解决你的问题,请参考以下文章

手把手从零开始搭建k8s集群超详细教程

手把手从零开始搭建k8s集群超详细教程

从零开始搭建k8s集群——使用KubeSphere管理平台搭建链路追踪组件zipkin服务端

从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的zookeeper集群服务

(四)从零开始搭建k8s集群—— 使用KubeKey一键式搭建高可用k8s集群

(九)从零开始搭建k8s集群——使用KubeSphere管理平台搭建流控组件sentinel服务端