Helm部署Pulsar

一、理论介绍

1、简介:

Pulsar 是用于服务器到服务器消息传递的多租户、高性能解决方案。

2、pulsar的主要特点:

  • 云原生架构(计算与存储分离),无缝支持跨集群复制
  • 比kafka更高的吞吐量和低延迟
  • 无缝支持上百万个topics
  • 支持多种消息订阅模式 (exclusive & shared & failover)
  • 通过持久化存储BookKeeper保障消息的传递
  • 轻量级Serverless计算框架Pulsar Functions提供了流式数据处理能力。
  • 提供分层存储能力,释放BookKeeper的空间:将老数据or长期不用的数据放到AWS S3等

3、pulsar架构图:

与其他消息系统不同,Pulsar抽象为两层架构:

  • 无状态服务层:处理消息的Broker组成
  • 有状态存储层:BookKeeper存储节点组成,可以持久化的存储消息

Pulsar Broker:

不存储实际的数据,而是将消息存储在BookKeeper(又名Bookie)中,仅仅拥有Topic/Partitions的代理权。它屏蔽了msg复杂的读写流程,保证了数据一致性和负载均衡。meta信息是存储在zookeeper中,消息存储到BookKeeper中。

二、部署

1、添加helm仓库:

helm repo add apache https://pulsar.apache.org/charts

2、查看版本:

helm search repo apache/pulsar  -l

3、下载特定版本:

helm pull apache/pulsar --version 2.7.13
tar xzvf pulsar-2.7.13.tgz

修改values文件:

vim pulsar/values.yaml

initialize: true    
volumes:
  persistence: true
  local_storage: false
images:
  pulsar_manager:
    repository: apachepulsar/pulsar-manager
    tag: v0.1.0
    pullPolicy: IfNotPresent
    hasCommand: false
zookeeper:
  volumes:
    persistence: true
    data:
      name: data
      size: 20Gi
      local_storage: false
      storageClassName: lowcode-prod
bookkeeper:
  replicaCount: 3
  volumes:
    persistence: true
    journal:
      name: journal
      size: 10Gi
      local_storage: false
      storageClassName: lowcode-prod
broker:
  replicaCount: 3            
proxy:
  replicaCount: 3       
prometheus:
  volumes:
    persistence: true
    data:
      name: data
      size: 10Gi
      local_storage: false
      storageClassName: lowcode-prod    
pulsar_manager:
  admin:
    user: pulsar
    password: pulsar
#备注:pulsar_manager版本使用v0.1.0,v0.2.0需要自定义密码。

grafana/proxy/pulsar_manager中的service去掉type这一行
  service:
    annotations: {}
    type: LoadBalancer   #去掉,不然会增加SLB

4、安装依赖:为pulsar_manager管理员生成密钥(如果不执行这一步,后面不会创建密码的secret)

git clone https://github.com/apache/pulsar-helm-chart
cd pulsar-helm-chart
./scripts/pulsar/prepare_helm_release.sh -n test -k pulsar

5、安装pulsar

helm install pulsar ./pulsar -n test

6、配置ingress并访问:

#备注:pulsar_manager v0.1.0版本的默认用户名密码是:pulsar/plusar

7、添加proxy:

备注:pulsar_manager为:v0.2.0版本,设置密码:

#进入到容器中:
kubectl exec -it pulsar-pulsar-manager-84585476c8-hfn26 -n test sh

#设置密码:
CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
2curl \
3   -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
4   -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
5   -H "Content-Type: application/json" \
6   -X PUT http://localhost:7750/pulsar-manager/users/superuser \
7   -d '{"name": "admin", "password": "apachepulsar", "description": "test", 
8        "email": "username@test.org"}'

#登录时的用户名密码:admin/apachepulsar

【完成】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值