Pulsar怎么部署到Kubernetes

发布时间:2021-07-30 18:24:16 作者:Leah
来源:亿速云 阅读:757

Pulsar怎么部署到Kubernetes,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

前提条件

 
Tip

对于接下来的步骤,步骤 2 与步骤 3 适用于 开发者,步骤 4 和 步骤 5 适用于 管理员

步骤 0:准备一个 Kubernetes 集群

在安装 Pulsar Helm chart 之前,你必须创建一个 Kubernetes 集群。 你可以按照 指示 来准备一个Kubernetes集群。

We use Minikube in this quick start guide. 要准备一个 Kubernetes 集群,请遵循以下步骤:

  1. 在 Minikube 上创建一个 Kubernetes 集群。

    minikube start --memory=8192 --cpus=4 --kubernetes-version=<k8s-version>


    <k8s-version> 可以是  Minikube 安装程序支持的任意 Kubernetes 版本 比如 v1.16.1

  2. 设置 kubectl 来使用 Minikube。

    kubectl config use-context minikube


  3. 若要在 Minikube 上使用与本地 Kubernetes 集群的 Kubernetes Dashboard,输入以下的命令:

    minikube dashboard


    这条命令会自动用你的浏览器打开一个网页。

步骤 1:安装 Pulsar Helm chart

  1. 添加 Pulsar Helm 仓库。

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


    helm repo update


  2. 克隆 Pulsar Helm chart 的仓库。

    git clone https://github.com/apache/pulsar-helm-chartcd pulsar-helm-chart


  3. 运行脚本 prepare_helm_release.sh 来创建安装 Apache Pulsar Helm chart 所需的 secrets。 用户名 pulsar 与密码 pulsar 可用于登录 Grafana dashboard 与 Pulsar Manager。

    ./scripts/pulsar/prepare_helm_release.sh \
        -n pulsar \
        -k pulsar-mini \
        -c


  4. 使用 Pulsar Helm chart 来将一个 Pulsar 集群安装至 Kubernetes。

    NOTE
    You need to specify --set initialize=true when installing Pulsar the first time. This command installs and starts Apache Pulsar.

        helm install \
            --values examples/values-minikube.yaml \
            --set initialize=true \
            --namespace pulsar \
            pulsar-mini apache/pulsar
     
  5. 检查所有 pod 的状态。

    kubectl get pods -n pulsar


    如果所有 pod 都成功启动,你会看到 STATUS 变为 RunningCompleted

    输出

    NAME                                         READY   STATUS      RESTARTS   AGE
    pulsar-mini-bookie-0                         1/1     Running     0          9m27s
    pulsar-mini-bookie-init-5gphs                0/1     Completed   0          9m27s
    pulsar-mini-broker-0                         1/1     Running     0          9m27s
    pulsar-mini-grafana-6b7bcc64c7-4tkxd         1/1     Running     0          9m27s
    pulsar-mini-prometheus-5fcf5dd84c-w8mgz      1/1     Running     0          9m27s
    pulsar-mini-proxy-0                          1/1     Running     0          9m27s
    pulsar-mini-pulsar-init-t7cqt                0/1     Completed   0          9m27s
    pulsar-mini-pulsar-manager-9bcbb4d9f-htpcs   1/1     Running     0          9m27s
    pulsar-mini-toolset-0                        1/1     Running     0          9m27s
    pulsar-mini-zookeeper-0                      1/1     Running     0          9m27s


  6. 检查命名空间 pulsar 下所有服务的状态。

    kubectl get services -n pulsar


    输出

    NAME                         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                       AGE
    pulsar-mini-bookie           ClusterIP      None             <none>        3181/TCP,8000/TCP             11m
    pulsar-mini-broker           ClusterIP      None             <none>        8080/TCP,6650/TCP             11m
    pulsar-mini-grafana          LoadBalancer   10.106.141.246   <pending>     3000:31905/TCP                11m
    pulsar-mini-prometheus       ClusterIP      None             <none>        9090/TCP                      11m
    pulsar-mini-proxy            LoadBalancer   10.97.240.109    <pending>     80:32305/TCP,6650:31816/TCP   11m
    pulsar-mini-pulsar-manager   LoadBalancer   10.103.192.175   <pending>     9527:30190/TCP                11m
    pulsar-mini-toolset          ClusterIP      None             <none>        <none>                        11m
    pulsar-mini-zookeeper        ClusterIP      None             <none>        2888/TCP,3888/TCP,2181/TCP    11m


步骤 2:使用 pulsar-admin 来创建 Pulsar 租户/命名空间/主题

pulsar-admin 是 Pulsar 的 CLI(命令行客户端) 工具。 这一步中,你可以使用 pulsar-admin 来创建资源,包括租户、命名空间和主题。

  1. 进入 toolset 容器。

    kubectl exec -it -n pulsar pulsar-mini-toolset-0 -- /bin/bash


  2. toolset 容器里,创建一个名为 apache 的租户。

    bin/pulsar-admin tenants create apache


    然后你可以列出所有租户,来查看租户是否创建成功。

    bin/pulsar-admin tenants list


    你应该能看到类似如下的输出: 租户 apache 已经被成功地创建了。

    "apache""public""pulsar"


  3. toolset 容器里,在租户 apache 下创建一个名为 pulsar 的命名空间。

    bin/pulsar-admin namespaces create apache/pulsar


    然后你可以列出租户 apache 的所有命名空间,来查看命名空间是否创建成功。

    bin/pulsar-admin namespaces list apache


    你应该能看到类似如下的输出: 命名空间 apache/pulsar 已经被成功地创建了。

    "apache/pulsar"


  4. toolset 容器里,在命名空间 apache/pulsar 下创建一个包含 4 个分区的主题 test-topic

    bin/pulsar-admin topics create-partitioned-topic apache/pulsar/test-topic -p 4


  5. toolset 容器里,列出命名空间 apache/pulsar 中的所有分区主题。

    bin/pulsar-admin topics list-partitioned-topics apache/pulsar


    然后你可以看见命名空间 apache/pulsar 下的所有分区主题。

    "persistent://apache/pulsar/test-topic"


步骤 3:使用 Pulsar 客户端生产和消费消息

你可以使用 Pulsar 客户端来创建生产者与消费者并用于生产和消费消息。

默认地,Pulsar Helm chart 会通过 Kubernetes LoadBalancer 将 Pulsar 集群暴露出来。 在 Minikube 中,你可以使用如下命令来检查代理服务。

kubectl get services -n pulsar | grep pulsar-mini-proxy

你将看到类似如下的输出:

pulsar-mini-proxy            LoadBalancer   10.97.240.109    <pending>     80:32305/TCP,6650:31816/TCP   28m

这个输出显示了 Pulsar 集群的二进制端口 和 HTTP 端口都映射到了哪个 node 端口上。 80: 后面的端口是 HTTP 端口,而 6650: 后面的端口是二进制端口。

然后你就可以找到 IP 地址并通过运行以下命令来对外暴露你的 Minikube 服务器

minikube service pulsar-mini-proxy -n pulsar

输出

|-----------|-------------------|-------------|-------------------------|
| NAMESPACE |       NAME        | TARGET PORT |           URL           |
|-----------|-------------------|-------------|-------------------------|
| pulsar    | pulsar-mini-proxy | http/80     | http://172.17.0.4:32305 |
|           |                   | pulsar/6650 | http://172.17.0.4:31816 |
|-----------|-------------------|-------------|-------------------------|
???? pulsar-mini-proxy 服务的起始通道。
|-----------|-------------------|-------------|------------------------|
| NAMESPACE |       NAME        | TARGET PORT |          URL           |
|-----------|-------------------|-------------|------------------------|
| pulsar    | pulsar-mini-proxy |             | http://127.0.0.1:61853 |
|           |                   |             | http://127.0.0.1:61854 |
|-----------|-------------------|-------------|------------------------|

此时,你可以获得连接到你的 Pulsar 客户端的服务 URL。 下面是一些 URL 示例:

webServiceUrl=http://127.0.0.1:61853/brokerServiceUrl=pulsar://127.0.0.1:61854/

然后你可以继续如下步骤:

  1. 从 下载页面 下载 Apache Pulsar tarball。

  2. 基于你的下载文件解压 tarball。

    tar -xf <file-name>.tar.gz


  3. 暴露 PULSAR_HOME

    (1) 输入已解压的下载文件的目录。

    (2) 将 PULSAR_HOME 暴露为环境变量。

     ```bash
     export PULSAR_HOME=$(pwd)
     ```


  4. 配置 Pulsar 客户端。

    ${PULSAR_HOME}/conf/client.conf 文件中,用你从上面步骤中获得的服务 URL 来替换掉 webServiceUrlbrokerServiceUrl

  5. 创建订阅以消耗来自 apache/pulsar/test-tope 的消息。

    bin/pulsar-client consume -s sub apache/pulsar/test-topic  -n 0


  6. 打开一个新的终端。 在新终端中,创建一个生产者并向 test-topic 主题发送10条消息。

    bin/pulsar-client produce apache/pulsar/test-topic  -m "---------hello apache pulsar-------" -n 10


  7. 验证结果。

步骤 4:使用 Pulsar Manager 来管理集群

Pulsar Manager 是一个基于网络 GUI 的管理工具,用于管理和监测Pulsar。

  1. 默认情况下, Pulsar Manager 作为一个独立的 LoadBalancer 暴露给外界。 你可以使用以下命令打开 Pulsar Manager 界面:

    minikube service -n pulsar pulsar-mini-pulsar-manager


  2. Pulsar Manager UI 将会在你的浏览器中打开。 你可以使用用户名 pulsar 和密码 pulsar 来登录进 Pulsar Manager。

  3. 在 Pulsar Manager UI 中,你可以创建一个环境。

  4. 成功创建环境后,你将被重定向到新环境的 租户 页面。 然后你可以使用 Pulsar Manager 来创建 租户命名空间主题

步骤 5:使用 Prometheus 和 Grafana 来监控集群

Grafana 是一个开源的可视化工具,用于将时间序列数据直观地可视化为仪表板。

  1. 默认情况下, Grafana 作为一个独立的 LoadBalancer 暴露给外界。 你可以使用以下命令打开 Grafana 界面:

    minikube service pulsar-mini-grafana -n pulsar


  2. Grafana UI 会在你的浏览器中打开。 你可以使用用户名 pulsar 和密码 pulsar 来登录进 Grafana仪表板。

  3. 你可以查看 Pulsar 集群的不同组件的仪表板。

关于Pulsar怎么部署到Kubernetes问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. kubernetes etcd组件部署
  2. 如何部署Kubernetes?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pulsar kubernetes

上一篇:Linux下怎么查看进程和线程

下一篇:在Windows下安装Hadoop的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》