helm 轻松完爆kafka

一、环境准备

  • Kubernetes:v1.18.13
  • Kubernetes宿主机:CentOS Linux release 7.6.1810 (Core)
  • Nfs服务器:192.168.99.151
  • Helm:v3.6.1
  • Kafka:2.0.1
  • Zookeeper:3.5.5

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

二、准备工作

2.1 添加helm仓库(该仓库中有kafka):

$ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
# 如果上述命令添加仓库失败了   可以使用以下命令进行添加
$ helm repo add incubator https://charts.helm.sh/incubator

2.2 获取kafka的chart包

$ helm pull incubator/kafka --untar

2.3 修改具体的values 对应的值

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

2021-07-05_122350

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

2021-07-05_122556

3)设置数据卷,找到persistence,按需要调整大小,再设置已准备好的storageclass的名称!

2021-07-05_122723

4)设置zookeeper的数据卷!

2021-07-05_122823

三、部署

3.1 先创建namespace

$ kubectl create namespace kafka-test

3.2 安装

$ helm -n kafka-test install kafka ../kafka/ -f values.yaml

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

3.3 查看kafka的版本

$ kubectl exec kafka-0 -n kafka-test -- sh -c 'ls /usr/share/java/kafka/kafka_*.jar'

如下图红框所示,scala版本2.11,kafka版本2.0.1:

2021-07-05_123608

四、验证

4.1 对外暴露zookeeper

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

4.2 验证

找一台电脑安装kafka包,就能通过里面自带的命令远程连接和操作K8S的kafka了!

4.2.1 安装kafka软件包

访问kafka官网:http://kafka.apache.org/downloads ,刚才确定了scala版本2.11,kafka版本2.0.1,因此下载下图红框中的版本:

7dot1ooduj

4.2.2 查看当前topic
$ ./kafka-topics.sh --list --zookeeper 192.168.99.151:32181
# 空空如也
4.2.3 创建topic
$ ./kafka-topics.sh --create --zookeeper 192.168.99.151:32181 --replication-factor 1 --partitions 1 --topic test001
4.2.4 查看名为test001的topic
$ ./kafka-topics.sh --describe --zookeeper 192.168.99.151:32181 --topic test001
Topic:test001	PartitionCount:1	ReplicationFactor:1	Configs:
	Topic: test001	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
4.2.5 进入创建消息的交互模式
$ ./kafka-console-producer.sh --broker-list 192.168.99.151:31090 --topic test001
4.2.6 执行命令消费消息
$ ./kafka-console-consumer.sh --bootstrap-server 192.168.99.151:31090 --topic test001 --from-beginning

自行测试! 本人暂时对kafka 没什么深入研究 ! 随后有时间继续完善!

*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
原文地址:https://www.cnblogs.com/lvzhenjiang/p/14971932.html