目录:
(1).版本与环境要求
(2).使用kubesphere部署pulsar最小集群
(3).验证集群
(1).版本与环境要求
pulsar版本:2.7.4
pulsar对环境要求:
1.kubectl版本:1.14 or 1.14+
2.Helm:v3 (3.0.2 or 3.0.2+)
3.Kubernetes版本:1.14 or 1.14+
因为用到存储,需要先部署openebs:
openebs-1:kubernetes使用openebs作为provisioner(卷机制)
(2).使用kubesphere部署pulsar最小集群
kubesphere中添加pulsar仓库:
https://pulsar.apache.org/charts
从应用模版创建:
依次修改配置:
修改namespace为pulsar。
因为我们是第一次安装,所以需要设置initialize为true。
存储配置:
关闭monitoring,后边所有的组件都用统一的grafana/prometheus体系。
开启的组件有下述这些,由于只是一台8c32g的ecs,所以每个组件的replica都设置为1,但是bookkeeper要改成3不能用1(原因见后),并且将storageClassName都设置成default sc(openebs)。
修改zookeeper相关:
修改bookkeeper相关:
replicaCount改为3不能用1,因为为了保证不丢消息,其预写日志要写入到至少两个bookie节点,用1的话,broker-pod日志会一直报:等待bookie初始化完成。
如果是再非容器化部署,你可以只部署一个bookie,但是要进行如下修改:
vim conf/bookkeeper.conf:
修改
zkServers=ip:2181
关闭autorecovry:
autoRecoveryDaemonEnabled=false
否则包错:BKNotEnoughBookiesException: Not enough non-faulty bookies available
而且应为是在一台机器部署3个bookie pod,所以要修改配置为false。
vim conf/bookkeeper.conf:
修改
zkServers=ip:2181
关闭autorecovry:
autoRecoveryDaemonEnabled=false
否则包错:BKNotEnoughBookiesException: Not enough non-faulty bookies available
修改autorecovery相关:
修改broker相关:
修改proxy相关:
修改toolset相关:
修改pulsar-manager相关:
ingress不需要开,统一用apisix做反向代理。
点击安装后,等待一会儿,几分钟。
部署完成后的组件:
相关pvc/pv:
(3).验证集群
开两个窗口进入borker pod,一个启动consumer,一个启动producer:
kubectl exec -it -n pulsar pulsar-broker-0 -- /bin/bash
cd /pulsar/bin
启动consumer监听:
./pulsar-client consume -n 100 -s "consumer-test" -t "Exclusive" persistent://public/default/test
启动producer发送消息:
./pulsar-client produce -n 100 -m "hello world" persistent://public/default/test
在consume端可以看到: