1.Kafka介绍
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
2.在Rancher中安装Kafka
2.1 认识bitnami
安装Kafka是一个比较复杂的事情,自己编排的话会比较麻烦,所以我隆重介绍国外一个比较专业的老铁bitnami,它有很多已经编排好的东西,Github地址是https://github.com/bitnami/charts.git。但是这玩意是专门为了Helm准备的图表,和Rancher商店中所需要的图表还有一点不一样,主要就是在外部依赖这一块中找不到。
如果想用它的编排的话直接将他们的图表库加入商店就行了,如果出现依赖找不到的情况就需要按照Kafka的方式去解决一下,后面我讲怎么解决。
直接添加应用商店然后将bitnami的Git地址放进去就好了。
这里要注意的就是这是一个HELM3的库,在添加的时候不要选错了。
image.png
2.2 构建Kafka编排文件
直接安装bitnami是会抛出依赖找不到的错误的,所以我们需要对bitnami进行Rancher商店的改造。
首先你要有一个空的Git仓库,然后直接安装Helm仓库的格式将仓库建好,大概长得如下
image.png
然后需要将bitnami中的zookeeper和kafka的编排文件全部下载下来。
然后直接拖到你新加的图表编排库中就好了,然后再将依赖地址修改为你自己的仓库地址就完成了第一步了。
image.png
然后在Kafka文件夹下新建一个charts文件夹,将zookeeper直接拷贝一份放入其中。
再将你刚刚建立的图表仓库加入到Rancher的仓库中。
现在再打开Rancher的应用商店就能看到你刚刚弄好的Kafka了。
image.png
然后直接拉到最下面点击编辑YAML
image.png
直接拷贝进去就好了,我的是用的NodePort去做的,你们可以参考bitnami的文档去进行更加细致的配置,我这里比较粗糙,只管怎么跑起来,能让K8S集群外能访问到。
---
externalAccess:
enabled: "true" # 启动外部访问
service:
domain: "192.168.1.136" # 这里填写你K8S负载机器地址(不要写Master),或者域名。
type: "NodePort" # 这里代表用NodePort去外放
nodePorts: # 这个地方注意一下,这里的端口号数量必须和 replicaCount 一致
- "31050"
- "31051"
- "31052"
rbac:
create: "true"
replicaCount: "3" # 有多少副本就需要有多少端口
serviceAccount:
create: "true"
这里需要注意的就只是 domain和strongClass 这两个配置
domain 代表向Zookeeper中注册的时候带的东西,你只要找一个能找到真实负载Pod的地址就好了,可以是域名,可以是三方Nginx反向代理机器。
其实实际上就是控制Kafka的这两句配置而已
image.png
image.png
strongClass 代表使用的存储,如果你没有默认存储或者需要选择其他的存储就需要配置的,可以参照bitnami的配置去配置,如果你没有存储的话,可以安装Ceph,如果是小白的话那就选择 longhorn 吧,网上都有教程的,实在搞不定给我留言。
等待配置好了就应该是这样的
image.png
然后就可以用kafka-tool去测试看看是不是连得上了
image.png
然后再测试用代码是不是可以访问。
image.png
到此为止Kafka就成功在K8S中安装好了,我上面描述的只能用于开发,测试,如果要上生产的话需要根据bitnami的README文件去进行生产配置。
祝你们安装成功。











网友评论