目录
1、helm部署方式介绍
helm安装文档:
https://helm.sh/docs/intro/install/
helm添加仓库:
$ helm repo add bitnami https://charts.bitnami.com/bitnami
bitnami https://charts.bitnami.com/bitnami
ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
ali-incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
创建一个chart:
helm create helm-test
├── charts # 依赖文件
├── Chart.yaml # 这个chart的版本信息
├── templates #模板
│ ├── deployment.yaml
│ ├── _helpers.tpl # 自定义的模板或者函数
│ ├── ingress.yaml
│ ├── NOTES.txt #这个chart的信息
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml #配置全局变量或者一些参数
常用函数:http://masterminds.github.io/sprig/strings.html
2、利用bitnami开源部署方式
# 官方部署说明:
https://docs.bitnami.com/tutorials/deploy-scalable-kafka-zookeeper-cluster-kubernetes
# 仓库helm已添加,查找相关软件包:
[root@k8s-master01 someapps]# helm search repo zookeep
# 下载zookeeper和kafka到本地
可以直接helm install zookeeper bitnami/zookeeper安装,但是需要修改values.yaml文件再部署
helm pull bitnami/zookeeper bitnami/kafka
# 修改默认配置
vim zookeeper/values.yaml
修改为false,默认true使用PVC启用Kafka数据持久性,需要提前准备好pvc
vim kafka/values.yaml
# helm部署zookeep集群
进入pull好的zookeep目录、指定命名空间、副本数、内网无需验证、注意最后有.读取当前位置
当前打算练习elk部署,所以指定空间为kube-logging
helm install zookeeper -n kube-logging --set replicaCount=1 --set auth.enabled=false --set allowAnonymousLogin=true .
# helm部署kafka集群
zookeeper.enabled已经部署好zookeep了无需再部署一个,因为是同一个命名空间,所以externalZookeeper.servers直接指定zookeeper就可以读取到了,否则需要指定命名空间
helm install kafka -n kube-logging --set replicaCount=1 --set zookeeper.enabled=false --set externalZookeeper.servers=zookeeper .
# 查看服务部署状态
3、验证消息队列是否正常
# 1、进入一个kafka容器
k exec -it kafka-0 bash
# 2、创建一个名为mytopic的主题
kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mytopic
# 3、启动 Kafka 消息消费者
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic mytopic
# 4、打开另一个终端,启动 Kafka 消息生产者
kafka-console-producer.sh --broker-list kafka:9092 --topic mytopic
# 5、生产者在mytopic输入消息,看消费者可否读取到
4、kafka集群和zookeeper集群扩容
helm upgrade kafka -n public-service --set zookeeper.enabled=false --set replicaCount=2 --set externalZookeeper.servers=zookeep .