注意:在下面的演示环境中,安装kafka集群前,需要提前安装完成
下面以Chart包和命令行两种方式分别介绍如何安装kafka集群
一、Chart包方式安装kafka集群¶
1.查看kafka的Chart包的历史版本
[root@k8s-master01 ~]# helm search repo bitnami/kafka -l
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/kafka 23.0.1 3.5.0 Apache Kafka is a distributed streaming platfor...
bitnami/kafka 23.0.0 3.5.0 Apache Kafka is a distributed streaming platfor...
bitnami/kafka 22.1.6 3.4.1 Apache Kafka is a distributed streaming platfor...
bitnami/kafka 22.1.5 3.4.1 Apache Kafka is a distributed streaming platfor...
2.下载最新chart包
[root@k8s-master01 ~]# helm pull bitnami/kafka
如果想要下载指定版本,需要指定--version参数
[root@k8s-master01 ~]# helm pull bitnami/kafka --version 23.0.0
3.解压chart包
[root@k8s-master01 ~]# tar -xf kafka-23.0.1.tgz
4.修改values.yaml相应配置
需要修改replicaCount的值为3
$ cd /root/kafka
$ vim values.yaml

根据自己需要修改image
$ cd /root/kafka
$ vim values.yaml
...
...
image:
registry: registry.cn-hangzhou.aliyuncs.com
repository: abroad_images/kafka
tag: 3.5.0-debian-11-r1
image:
registry: registry.cn-hangzhou.aliyuncs.com
repository: abroad_images/kubectl
tag: 1.25.11-debian-11-r4
image:
registry: registry.cn-hangzhou.aliyuncs.com
repository: abroad_images/bitnami-shell
tag: 11-debian-11-r130
image:
registry: registry.cn-hangzhou.aliyuncs.com
repository: abroad_images/kafka-exporter
tag: 1.7.0-debian-11-r11
image:
registry: registry.cn-hangzhou.aliyuncs.com
repository: abroad_images/jmx-exporter
tag: 0.18.0-debian-11-r34
...
...
如果使用指定的zookeeper,kraft模式要关闭,修改kraft.enable 的值为false,新版kafka新增了一个kraft模式,他与zookeeper是冲突的,不能同时使用

根据自己需要修改持久化配置,这里因为是测试环境没有使用持久化(生产必须要使用持久化)。其中修改内容如下:
- enabled修改为false
- 注释existingClaim
- 注释storageClass
$ cd /root/kafka
$ vim values.yaml

修改externalZookeeper.servers为zookeeper,如果不知道可以通过以下命令查询
[root@k8s-master01 zookeeper]# kubectl get svc -n public-service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
zookeeper ClusterIP 10.0.43.52 <none> 2181/TCP,2888/TCP,3888/TCP 19m
zookeeper-headless ClusterIP None <none> 2181/TCP,2888/TCP,3888/TCP 19m

5.开始安装
[root@k8s-master01 kafka]# helm install -n public-service kafka .
6.观察到kafka集群已经安装完成
[root@k8s-master01 zookeeper]# kubectl get po -n public-service
NAME READY STATUS RESTARTS AGE
kafka-0 1/1 Running 0 2m46s
kafka-1 1/1 Running 0 2m45s
kafka-2 1/1 Running 0 2m45s
zookeeper-0 1/1 Running 0 33m
zookeeper-1 1/1 Running 0 33m
zookeeper-2 1/1 Running 0 33m
7.查看安装的版本信息
[root@k8s-master01 kafka]# helm list -n public-service
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
kafka public-service 1 2023-07-08 17:37:32.729046912 +0800 CST deployed kafka-23.0.1 3.5.0
zookeeper public-service 1 2023-07-08 17:16:23.567379001 +0800 CST deployed zookeeper-11.4.3 3.8.1
8.验证kafka与zookeeper是否绑定,观察到已成功绑定
[root@k8s-master01 kafka]# kubectl logs -f kafka-0 -n public-service | grep socket

二、命令行方式安装kafka集群¶
1.直接安装
$ helm install kafka bitnami/kafka --set zookeeper.enabled=false --set replicaCount=3 --set externalZookeeper.servers=zookeeper --set persistence.enabled=false -n public-service
2.观察到kafka集群已经安装完成
[root@k8s-master01 zookeeper]# kubectl get po -n public-service
NAME READY STATUS RESTARTS AGE
kafka-0 1/1 Running 0 2m46s
kafka-1 1/1 Running 0 2m45s
kafka-2 1/1 Running 0 2m45s
zookeeper-0 1/1 Running 0 33m
zookeeper-1 1/1 Running 0 33m
zookeeper-2 1/1 Running 0 33m
3.查看安装的版本信息
[root@k8s-master01 kafka]# helm list -n public-service
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
kafka public-service 1 2023-07-08 17:37:32.729046912 +0800 CST deployed kafka-23.0.1 3.5.0
zookeeper public-service 1 2023-07-08 17:16:23.567379001 +0800 CST deployed zookeeper-11.4.3 3.8.1
4.验证kafka与zookeeper是否绑定,观察到已成功绑定
[root@k8s-master01 kafka]# kubectl logs -f kafka-0 -n public-service | grep socket

5.查看安装的values
[root@k8s-master01 zookeeper]# helm get values kafka -n public-service
USER-SUPPLIED VALUES:
externalZookeeper:
servers: zookeeper
persistence:
enabled: false
replicaCount: 3
zookeeper:
enabled: false