pulsar on k8s

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: pulsar on k8s

Pulsar on K8s部署

 

前期准备:

  1. Helm charts。
  2. Scripts(初始化pulsar用户、创建token、清理token等)
  3. Kubernetes集群 admin权限(pulsar function需要admin权限)
  4. 需要用csi的方式进行磁盘挂载,按照不同的磁盘类型,需要申请两个sc,增强型SSD(bigdata-sc-essd),高性能云磁盘(bigdata-sc-hpd)
  5. 单节点允许的挂盘数,由5调整为10。(TODO)
  6. 确保执行安装脚本的kubeclt客户端节点或容器有base64的命令行工具,可通过执行base64 --help命令进行确认,如果缺少此命令(如使用鲲鹏提供的基于busybox的代理容器),可执行apk add --update coreutils进行安装。
  7. 至少有5个可用node(16c64g),包含taints和label(node.lixiang.com/group: pulsar)
taints:
  - effect: NoSchedule
    key: node.lixiang.com/group
    value: pulsa

部署步骤:

  1. 初始化pulsar。
  1.  -n 指定k8s namespace名称。
  2.  -k 指定helm release名称。
  3.  -c 是否由脚本创建namespace,如果ns已经存在,无需此参数。
./scripts/pulsar/prepare_helm_release.sh -n pulsar -k pulsar-bigdata -

脚本内主要的逻辑是创建pulsar需要的管理员用户权限(kubernetes secrets)。

执行完脚本后,可以通过 kubectl get secret -n pulsar 查看是否成功创建secrets,至少包含admin、broker-admin、proxy-admin、asymmetric-key四个secrets信息。

  1. 安装helm


helm upgrade --install pulsar-bigdata ./pulsar -n pulsar -f ./values-cell.yaml

可能遇到的问题:

proxy.nodePorts.http

proxy.nodePorts.pulsar

目前是通过nodePort方式进行配置的,如果和其他服务共用的Node,可能会出现端口冲突的问题。

如果冲突,调整这两个端口为其他端口即可。

  1. 确认proxy的lb模式为cluster,否则由local变为cluster。
  2. 检查安装是否成功
  1. 保证所有非Job类的pod都ready且处于running状态。
kubectl get pod

  1. b.找到其中的LoadBalancer 服务,通过telnet外部ip + port的方式,判断端口可联通。
kubectl get svc


   c.模拟数据生产、消费。 进入toolset容器

kubectl exec -ti pulsar-bigdata-toolset-0 -n pulsar /bin/bas

 创建topic

 没报错即可

./bin/pulsar-admin tenants create test
./bin/pulsar-admin namespaces create test/test
./bin/pulsar-admin topics create-partitioned-topic test/test/test -p 3

生产消息

./bin/pulsar-client produce test/test/test -m "test-message"
org.apache.pulsar.client.cli.PulsarClientTool - 1 messages successfully produced

 消费消息

./bin/pulsar-client  consume persistent://test/test/test -s test_2 -m NonDurable -n 1 -p Earliest
----- got message -----
key:[null], properties:[], content:test-message
2022-08-29T15:38:15,029+0800 [main] INFO  org.apache.pulsar.client.impl.PulsarClientImpl - Client closing. URL: pulsar://pulsar-bigdata-ontest-proxy:6650/
2022-08-29T15:38:15,038+0800 [main] INFO  org.apache.pulsar.client.impl.ConsumerImpl - [persistent://test/test/test-partition-2] [test_2] Closed consumer
2022-08-29T15:38:15,041+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ConsumerImpl - [persistent://test/test/test-partition-1] [test_2] Closed consumer
2022-08-29T15:38:15,041+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ConsumerImpl - [persistent://test/test/test-partition-0] [test_2] Closed consumer
2022-08-29T15:38:15,042+0800 [pulsar-client-internal-4-1] INFO  org.apache.pulsar.client.impl.MultiTopicsConsumerImpl - [persistent://test/test/test] [test_2] Closed Topics Consumer
2022-08-29T15:38:15,046+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x16947710, L:/10.22.32.9:37706 ! R:pulsar-bigdata-ontest-proxy.pulsar.svc.cluster.local/172.16.141.255:6650] Disconnected
2022-08-29T15:38:15,050+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x69a679bd, L:/10.22.32.9:37722 ! R:pulsar-bigdata-ontest-proxy.pulsar.svc.cluster.local/172.16.141.255:6650] Disconnected
2022-08-29T15:38:15,050+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x8284dc52, L:/10.22.32.9:37724 ! R:pulsar-bigdata-ontest-proxy.pulsar.svc.cluster.local/172.16.141.255:6650] Disconnected
2022-08-29T15:38:15,050+0800 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x758c992f, L:/10.22.32.9:37726 ! R:pulsar-bigdata-ontest-proxy.pulsar.svc.cluster.local/172.16.141.255:6650] Disconnected
2022-08-29T15:38:17,064+0800 [main] INFO  org.apache.pulsar.client.cli.PulsarClientTool - 1 messages successfully consumed
  查看topic状态

查看topic状态

./bin/pulsar-admin topics partitioned-stats test/test/test

 删除topic

 没报错即可

./bin/pulsar-admin topics delete-partitioned-topic test/test/test
./bin/pulsar-admin namespaces delete test/test
./bin/pulsar-admin tenants delete test

移除集群:

执行脚本,清理helm_release

./scripts/pulsar/cleanup_helm_release.sh -n pulsar -k pulsar-bigdata 
./scripts/pulsar/clean_tls.sh -n pulsar -k pulsar-bigdata

执行完成后,检查是否删除干净。

kubectl get statefulset -n pulsar
kubectl get secret -n pulsar
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
Kubernetes Java 流计算
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
48 0
|
9月前
|
Kubernetes 流计算 容器
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
60 1
|
7月前
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
378 3
GreenPlum on K8s
GreenPlum on K8s
172 0
|
2月前
|
存储 Kubernetes Apache
pulsar on k8s 部署验证
pulsar on k8s 部署验证
|
9月前
|
SQL 分布式计算 Kubernetes
Hadoop on K8s 编排部署进阶篇
Hadoop on K8s 编排部署进阶篇
Hadoop on K8s 编排部署进阶篇
|
2月前
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native
|
SQL Prometheus 运维
Higress on K8s 5分钟开箱即用
Higress on K8s 5分钟开箱即用
Higress on K8s 5分钟开箱即用
|
Kubernetes 监控 NoSQL
Gitlab on k8s最佳实践
Gitlab on k8s最佳实践
573 1
|
Kubernetes 流计算 容器
FLINK ON K8S 基于Zookeeper和基于K8S原生HA的区别
FLINK ON K8S 基于Zookeeper和基于K8S原生HA的区别
252 1

推荐镜像

更多