Kafka作为一款知名的消息中间件运用广泛,而对于容器化的部署也有不少,为加快推广,现将本人对于Kafka的容器化部署在单位的实践作个记录。
Strimzi Operator For Kafka
Kafka的部署官方没有提供,稍微有点麻烦,但此处先介绍一个本人实践了的一个方法——Strimzi Operator,这个可能是我目前见过的个方面比较完备的部署方法了,同时对kafka版本的跟进也比较及时。
strimzi operaotor是在GitHub上开源的,地址为https://github.com/strimzi/strimzi-kafka-operator
, 下载其发行版后,里面的文档非常全面,可以根据文档的引导下载相应的镜像文件,同时进行安装,因为文档实例已经很完善了,此处就不再进行详细的描述(因为文档描述的更加全面更加好)。
zoo-entrance
问题:Strimzi Operator自带了针对kafka的监控,使用的是Grafana+Prometheus,但由于历史和使用原因,很多人喜欢用CMAK(Cluster Manager for Apache Kafka)即以前的Kafka Manager。而CMAK需要连接Zookeeper(相关问题见: https://github.com/strimzi/strimzi-kafka-operator/issues/1337
, 而Zookeeper在Strimzi Operator的构建中是加密并且没有暴露出来的。
解决方法:为了满足暴露Zookeeper服务的需求,Strimzi Operator的主要作者 scholzj 提供了一个个人解决方案——zoo-entrance,地址为: https://github.com/scholzj/zoo-entrance
。 具体使用方法间文档,此处不再赘述。但需要注意的地方是部署文件deploy.yaml中的NetworkPolicy,如果搞不懂可以先不设置,对于cmak的打包虽不是很难,但也推荐一个我自己现在调试成功的一个guilin2014/kafka-manager:3.0.0.5-cluster