Pulsar怎么部署到Kubernetes

Pulsar怎么部署到Kubernetes,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司專注于惠東網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供惠東營銷型網(wǎng)站建設(shè),惠東網(wǎng)站制作、惠東網(wǎng)頁設(shè)計、惠東網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造惠東網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供惠東網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

前提條件

  • Kubernetes server 1.14.0+

  • kubectl 1.14.0+

  • Helm 3.0+

 
Tip

對于接下來的步驟,步驟 2 與步驟 3 適用于 開發(fā)者,步驟 4 和 步驟 5 適用于 管理員。

步驟 0:準(zhǔn)備一個 Kubernetes 集群

在安裝 Pulsar Helm chart 之前,你必須創(chuàng)建一個 Kubernetes 集群。 你可以按照 指示 來準(zhǔn)備一個Kubernetes集群。

We use Minikube in this quick start guide. 要準(zhǔn)備一個 Kubernetes 集群,請遵循以下步驟:

  1. 在 Minikube 上創(chuàng)建一個 Kubernetes 集群。

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

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

  2. 設(shè)置 kubectl 來使用 Minikube。

    kubectl config use-context minikube

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

    minikube dashboard

    這條命令會自動用你的瀏覽器打開一個網(wǎng)頁。

步驟 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 來創(chuàng)建安裝 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 的狀態(tài)。

    kubectl get pods -n pulsar

    如果所有 pod 都成功啟動,你會看到 STATUS 變?yōu)?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 下所有服務(wù)的狀態(tài)。

    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 來創(chuàng)建 Pulsar 租戶/命名空間/主題

pulsar-admin 是 Pulsar 的 CLI(命令行客戶端) 工具。 這一步中,你可以使用 pulsar-admin 來創(chuàng)建資源,包括租戶、命名空間和主題。

  1. 進(jìn)入 toolset 容器。

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

  2. toolset 容器里,創(chuàng)建一個名為 apache 的租戶。

    bin/pulsar-admin tenants create apache

    然后你可以列出所有租戶,來查看租戶是否創(chuàng)建成功。

    bin/pulsar-admin tenants list

    你應(yīng)該能看到類似如下的輸出: 租戶 apache 已經(jīng)被成功地創(chuàng)建了。

    "apache""public""pulsar"

  3. toolset 容器里,在租戶 apache 下創(chuàng)建一個名為 pulsar 的命名空間。

    bin/pulsar-admin namespaces create apache/pulsar

    然后你可以列出租戶 apache 的所有命名空間,來查看命名空間是否創(chuàng)建成功。

    bin/pulsar-admin namespaces list apache

    你應(yīng)該能看到類似如下的輸出: 命名空間 apache/pulsar 已經(jīng)被成功地創(chuàng)建了。

    "apache/pulsar"

  4. toolset 容器里,在命名空間 apache/pulsar 下創(chuàng)建一個包含 4 個分區(qū)的主題 test-topic。

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

  5. toolset 容器里,列出命名空間 apache/pulsar 中的所有分區(qū)主題。

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

    然后你可以看見命名空間 apache/pulsar 下的所有分區(qū)主題。

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

步驟 3:使用 Pulsar 客戶端生產(chǎn)和消費消息

你可以使用 Pulsar 客戶端來創(chuàng)建生產(chǎn)者與消費者并用于生產(chǎn)和消費消息。

默認(rèn)地,Pulsar Helm chart 會通過 Kubernetes LoadBalancer 將 Pulsar 集群暴露出來。 在 Minikube 中,你可以使用如下命令來檢查代理服務(wù)。

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 集群的二進(jìn)制端口 和 HTTP 端口都映射到了哪個 node 端口上。 80: 后面的端口是 HTTP 端口,而 6650: 后面的端口是二進(jìn)制端口。

然后你就可以找到 IP 地址并通過運行以下命令來對外暴露你的 Minikube 服務(wù)器。

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 服務(wù)的起始通道。
|-----------|-------------------|-------------|------------------------|
| NAMESPACE |       NAME        | TARGET PORT |          URL           |
|-----------|-------------------|-------------|------------------------|
| pulsar    | pulsar-mini-proxy |             | http://127.0.0.1:61853 |
|           |                   |             | http://127.0.0.1:61854 |
|-----------|-------------------|-------------|------------------------|

此時,你可以獲得連接到你的 Pulsar 客戶端的服務(wù) URL。 下面是一些 URL 示例:

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

然后你可以繼續(xù)如下步驟:

  1. 從 下載頁面 下載 Apache Pulsar tarball。

  2. 基于你的下載文件解壓 tarball。

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

  3. 暴露 PULSAR_HOME。

    (1) 輸入已解壓的下載文件的目錄。

    (2) 將 PULSAR_HOME 暴露為環(huán)境變量。

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

  4. 配置 Pulsar 客戶端。

    ${PULSAR_HOME}/conf/client.conf 文件中,用你從上面步驟中獲得的服務(wù) URL 來替換掉 webServiceUrlbrokerServiceUrl。

  5. 創(chuàng)建訂閱以消耗來自 apache/pulsar/test-tope 的消息。

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

  6. 打開一個新的終端。 在新終端中,創(chuàng)建一個生產(chǎn)者并向 test-topic 主題發(fā)送10條消息。

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

  7. 驗證結(jié)果。

    • 對于生產(chǎn)者而言

      輸出

      消息已被成功生產(chǎn)。

      18:15:15.489 [main] INFO  org.apache.pulsar.client.cli.PulsarClientTool - 10 messages successfully produced

    • 對于消費者而言

      輸出

      同時,你可以收到如下的消息。

      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------
      ----- got message -----
      ---------hello apache pulsar-------

步驟 4:使用 Pulsar Manager 來管理集群

Pulsar Manager 是一個基于網(wǎng)絡(luò) GUI 的管理工具,用于管理和監(jiān)測Pulsar。

  1. 默認(rèn)情況下, Pulsar Manager 作為一個獨立的 LoadBalancer 暴露給外界。 你可以使用以下命令打開 Pulsar Manager 界面:

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

  2. Pulsar Manager UI 將會在你的瀏覽器中打開。 你可以使用用戶名 pulsar 和密碼 pulsar 來登錄進(jìn) Pulsar Manager。

  3. 在 Pulsar Manager UI 中,你可以創(chuàng)建一個環(huán)境。

    • 點擊左上角的 New Environment 按鈕。

    • 在彈窗中的 Environment Name 一欄里入 pulsar-mini

    • 在彈窗中的 Service URL 一欄里輸入 http://pulsar-mini-broker:8080。

    • 點擊彈窗中的 Confirm 按鈕。

  4. 成功創(chuàng)建環(huán)境后,你將被重定向到新環(huán)境的 租戶 頁面。 然后你可以使用 Pulsar Manager 來創(chuàng)建 租戶、命名空間主題

步驟 5:使用 Prometheus 和 Grafana 來監(jiān)控集群

Grafana 是一個開源的可視化工具,用于將時間序列數(shù)據(jù)直觀地可視化為儀表板。

  1. 默認(rèn)情況下, Grafana 作為一個獨立的 LoadBalancer 暴露給外界。 你可以使用以下命令打開 Grafana 界面:

    minikube service pulsar-mini-grafana -n pulsar

  2. Grafana UI 會在你的瀏覽器中打開。 你可以使用用戶名 pulsar 和密碼 pulsar 來登錄進(jìn) Grafana儀表板。

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

關(guān)于Pulsar怎么部署到Kubernetes問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

當(dāng)前名稱:Pulsar怎么部署到Kubernetes
標(biāo)題鏈接:http://muchs.cn/article42/jcjohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、外貿(mào)建站網(wǎng)站設(shè)計、Google、網(wǎng)站策劃、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化