K8S环境快速部署Kafka(K8S外部可访问)

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

如何快速部署

借助Helm,只需少量操作即可部署kafka;

kafka和zookeeper对存储都有需求,若提前准备了StorageClass,存储一事则变得十分简单

参考文章

本次实战涉及到的K8S、Helm、NFS、StorageClass等前置条件,它们的安装和使用请参考:

《kubespray2.11安装kubernetes1.15》

《部署和体验Helm(2.16.1版本)》

《Ubuntu16环境安装和使用NFS》

《K8S使用群晖DS218+的NFS》

《K8S的StorageClass实战(NFS)》

环境信息

本次实战的操作系统和软件的版本信息如下:

Kubernetes:1.15

Kubernetes宿主机:CentOS Linux release 7.7.1908

NFS服务:IP地址192.168.50.135,文件夹/volume1/nfs-storageclass-test

Helm:2.16.1

Kafka:2.0.1

Zookeeper:3.5.5

接下来的实战之前,请您准备好:K8S、Helm、NFS、StorageClass;

操作

添加helm仓库(该仓库中有kafka):helm repo add incubator

下载kafka的chart:helm fetch incubator/kafka

下载成功后当前目录有个压缩包:kafka-0.20.8.tgz,解压:tar -zxvf kafka-0.20.8.tgz

进入解压后的kafka目录,编辑values.yaml文件,下面是具体的修改点:

首先要设置在K8S之外的也能使用kafka服务,修改external.enabled的值,改为true:

在这里插入图片描述


6. 找到configurationOverrides,下图两个黄框中的内容原本是注释的,请删除注释符号,另外,如果您之前设置过跨网络访问kafka,就能理解下面写入K8S宿主机IP的原因了:

在这里插入图片描述


7. 接下来设置数据卷,找到persistence,按需要调整大小,再设置已准备好的storageclass的名称:

在这里插入图片描述


8. 再设置zookeeper的数据卷:

在这里插入图片描述


9. 设置完成,开始部署,先创建namespace,执行:kubectl create namespace kafka-test
10. 在kafka目录下执行:helm install --name-template kafka -f values.yaml . --namespace kafka-test
11. 如果前面的配置没有问题,控制台提示如下所示:

在这里插入图片描述


12. kafka启动依赖zookeeper,整个启动会耗时数分钟,期间可见zookeeper和kafka的pod逐渐启动:

在这里插入图片描述


13. 查看服务:kubectl get services -n kafka-test,如下图红框所示,通过宿主机IP:31090、宿主机IP:31091、宿主机IP:31092即可从外部访问kafka:

在这里插入图片描述


14. 查看kafka版本:kubectl exec kafka-0 -n kafka-test -- sh -c 'ls /usr/share/java/kafka/kafka_*.jar' ,如下图红框所示,scala版本2.11,kafka版本2.0.1:

在这里插入图片描述

kafka启动成功后,咱们来验证服务是否正常;

对外暴露zookeeper

为了远程操作kafka,有时需要连接到zookeeper,所以需要将zookeeper也暴露出来;

创建文件zookeeper-nodeport-svc.yaml,内容如下:

apiVersion: v1 kind: Service metadata: name: zookeeper-nodeport namespace: kafka-test spec: type: NodePort ports: - port: 2181 nodePort: 32181 selector: app: zookeeper release: kafka

执行命令:kubectl apply -f zookeeper-nodeport-svc.yaml

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjgzg.html