注意:在下面的演示环境中,安装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

Chart包方式安装kafka集群-1

根据自己需要修改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是冲突的,不能同时使用

Chart包方式安装kafka集群-2

根据自己需要修改持久化配置,这里因为是测试环境没有使用持久化(生产必须要使用持久化)。其中修改内容如下:

  • enabled修改为false
  • 注释existingClaim
  • 注释storageClass
$ cd /root/kafka
$ vim values.yaml

Chart包方式安装kafka集群-3

修改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

Chart包方式安装kafka集群-4

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

Chart包方式安装kafka集群-5

二、命令行方式安装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

命令行方式安装kafka集群-1

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