作者介绍:徐文涛,StreamNative Content Strategist,酷爱云原生与开源技术,沉闷于本地化 / 文档 / 技术博客奉献,持有 K8s CKA/CKAD/CKS 认证。
Apache Pulsar 介绍
Apache Pulsar 作为 Apache 软件基金会顶级我的项目,是下一代云原生分布式音讯流平台,集音讯、存储、轻量化函数式计算为一体,采纳计算与存储拆散架构设计,反对多租户、长久化存储、跨地区复制、分层存储,具备强一致性、高吞吐、低延时及高可扩展性等流数据存储个性,是云原生时代解决实时音讯流数据传输、存储和计算的最佳解决方案。
Pulsar 的 Broker 没有状态,不存储数据。BookKeeper 负责存储数据,其中的 Bookie 反对程度扩容,元数据的信息存储在 ZooKeeper 上。这种架构也不便容器化的环境进行扩缩容,反对高可用等场景。
KubeSphere 介绍
KubeSphere 是建设在 Kubernetes 之上的面向云原生利用的分布式操作系统,齐全开源,反对多云与多集群治理、利用商店、可观测性(监控、告警及审计等)和多租户等性能,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。
在 KubeSphere 上装置 Apache Pulsar
作为一个以利用为核心的 K8s 容器平台,KubeSphere 为用户提供多种装置利用的形式。为疾速部署利用,这里给大家举荐以下两种办法:
- 间接从 KubeSphere 的利用商店中装置 Pulsar。KubeSphere 从 3.2.0 版本开始便新增了“动静加载利用商店”的性能。想要奉献利用的小伙伴能够间接向 KubeSphere 的 Helm 仓库奉献利用的 Helm Chart,待 PR 审核通过后利用商店上会加载最新的利用列表。
- 增加 Apache Pulsar 的 Helm 仓库至 KubeSphere 的利用仓库,而后从利用仓库中装置 Pulsar 利用模板。此装置形式相似在命令行应用
helm
相干命令增加仓库并装置。
注:KubeSphere 的利用商店与利用的全生命周期治理性能基于开源我的项目 OpenPitrix。在装置 Pulsar 前,你须要先在 KubeSphere 中启用 OpenPitrix。
上面咱们通过第二种形式在 KubeSphere Console 中增加 Pulsar 的 Helm 仓库并装置。
- 筹备一个 KubeSphere 集群。你能够间接应用 KubeKey 装置或通过 ks-installer 在已有 K8s 集群上搭建 KubeSphere 集群。同时,请留神 Pulsar 文档中对 K8s 集群和 Helm 的版本要求。
- 创立好企业空间和我的项目。企业空间是 KubeSphere 中的一种逻辑单元,用于治理我的项目、DevOps 我的项目和利用模板等资源,管理员能够治理其中的资源拜访权限;我的项目指 K8s 中的 Namespace。为不便演示,本文对立采纳
admin
用户操作。基于 KubeSphere 的多租户体系,在理论环境中你能够依据组织中每个租户的职责,创立不同的帐户并调配相应角色。 - 在你的企业空间空间下,点击利用治理 > 利用仓库,而后点击增加。定义仓库名称后,增加
https://pulsar.apache.org/charts
仓库地址。仓库地址验证胜利后,点击确定。 -
仓库增加胜利后,咱们还须要运行一个脚本,创立一些和 Pulsar 相干的 Secret 等资源,不便咱们后续拜访 Grafana 和 Pulsar Manager 等工具。先返回你的 K8s 节点,执行以下命令将 pulsar-helm-chart 的 GitHub 仓库克隆到本地。须要留神的是,在该节点上必须要能够执行
kubectl
和helm
命令。git clone https://github.com/apache/pulsar-helm-chart cd pulsar-helm-chart
-
执行以下命令运行
prepare_helm_release.sh
脚本。其中 -n 指相干的 Secret 生成的 Namespace,-k 指应用helm
装置利用的 release 名称,这两个中央须要和咱们在 KubeSphere 上指定的我的项目和利用名称绝对应。无关该脚本可用参数的更多信息,可运行./scripts/pulsar/prepare_helm_release.sh --help
查看详情。./scripts/pulsar/prepare_helm_release.sh -n pulsar -k ks-pulsar
- 返回 KubeSphere 中所创立的我的项目,本示例中的我的项目名为
pulsar
。 - 点击利用负载 > 利用,在基于模板的利用标签页下,点击创立。
- 抉择从利用模板,在利用模板的下拉列表中选中 Pulsar 的仓库。点击 Pulsar 后,咱们能够在这里查看 Chart 文件的一些信息。
- 点击装置。定义利用名称(即方才执行脚本时的 release 名称),抉择版本以及装置地位(如果启用多集群性能并增加了多个集群,这里还能够抉择 Pulsar 装置的所在集群),点击下一步。
- 转到利用设置页面,这里相似于应用
helm
命令时自定义 values.yaml 文件的各项参数。咱们设置namespace
为项目名称,initialize
为true
(仅首次装置 Pulsar 时须要设置),并启用 Pulsar Manager(设置components.pulsar_manager
为true
),而后点击装置。无关这些参数更具体的信息,可参考 Pulsar 文档。 -
期待一段时间后,查看 Pulsar 的各项组件是否已失常运行。
应用 Pulsar Manager 创立 Tenant、Namespace 以及 Topic
Pulsar 集群搭建好后,咱们能够应用 Web 工具 Pulsar Manager 来治理 Pulsar 中的租户(Tenant)、命名空间(Namespace)以及主题(Topic)。这些资源可用来确保同一个组织中不同部门间数据的互相隔离,如下图所示。
- 返回利用负载 > 服务,进入裸露 Pulsar Manager 的 Service 的详情页面,并依据其中 LoadBalancer 类型的 IP 地址加端口号拜访 Pulsar Manager。这里留神,依据部署环境的不同你可能还须要配置相应的防火墙或端口转发规定。
- 通过默认帐号密码
pulsar/pulsar
登录,而后增加环境。Service URL 这里填 Broker 的 Service 地址与端口号,本示例中为 http://ks-pulsar-broker:8080。
- 进入 Pulsar Manager 的 Dashboard 后,在不同菜单下别离增加 Tenant、Namespace 以及 Topic。定义 Topic 时咱们须要抉择该 Topic 的类型(长久化或非长久化),并指定 Topic 下的分区(Partition)数量。在 Pulsar 中,Topic 的格局为:{persistent | non-persistent}://tenant/namespace/topic。咱们须要先记录下这些信息,前面向该 Topic 发送信息时会用到。
向 Pulsar 集群发送信息并生产
当初咱们创立好了相干资源,能够尝试向 Pulsar 集群发送信息并生产。
- 在本地先下载好 Pulsar 的二进制文件,而后解压。
-
进入 Pulsar 目录后批改 conf/client.conf 文件中的 webServiceUrl 和 brokerServiceUrl 地址,用于将 Pulsar 客户端和 Pulsar 集群绑定。本示例中启用了代理拜访集群,这里的地址须要填代理所裸露的 IP 地址。咱们能够在 KubeSphere 的服务页面找到代理的 Service,并查看其详情页面中的 IP 地址。
webServiceUrl=http://34.71.201.104:8080 brokerServiceUrl=pulsar://34.71.201.104:6650
-
批改完后,在 Pulsar 目录下执行以下命令创立订阅并生产信息,命令中的
kubesphere/kubesphere/kubesphere
对应方才在 Pulsar Manager 中所创立的 Tenant、Namespace 以及 Topic。./bin/pulsar-client consume -s sub kubesphere/kubesphere/kubesphere -n 0
留神:运行前请务必确保已装置实用的 Java JRE/JDK 版本。
-
再关上一个命令行窗口,执行以下命令生产信息。
./bin/pulsar-client produce kubesphere/kubesphere/kubesphere -m“Hello KubeSphere and Pulsar”-n 10
- 能够看到音讯曾经胜利生产。
通过 Grafana 监控 Pulsar 指标
Pulsar 的 Helm Chart 在部署时会装置 Grafana 提供与 Pulsar 相干的可观测性指标,便于咱们进行后续的运维剖析。
- 与拜访 Pulsar Manager 相似,返回利用负载 > 服务,进入裸露 Grafana 的 Service 的详情页面,并依据其中 LoadBalancer 类型的 IP 地址加端口号拜访 Grafana。
- 通过默认帐号密码
pulsar/pulsar
登录。在左上角抉择一个 Dashboard 以查看 Pulsar 相干指标。 - 能够看到相干数据胜利显示在 Grafana 上。
总结
本文演示了在 KubeSphere 上部署 Apache Pulsar 的操作步骤。借助 Pulsar 人造适配云原生环境的个性,咱们能够借助 KubeSphere 运维敌对的操作界面轻松部署并治理 Pulsar。感兴趣的敌人能够浏览 KubeSphere 和 Pulsar 的官网文档理解更多信息。
6 月 25 日线上 Meetup 预报
6 月 25 日,KubeSphere 社区联结 Apache Pulsar 社区,独特组织一场线上的 Meetup,总共四个议题,当初已开启报名,欢送大家扫描海报中的二维码报名!
本文由博客一文多发平台 OpenWrite 公布!