您好,登錄后才能下訂單哦!
Pulsar怎么部署到Kubernetes,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Kubernetes server 1.14.0+
kubectl 1.14.0+
Helm 3.0+
Tip
對于接下來的步驟,步驟 2 與步驟 3 適用于 開發者,步驟 4 和 步驟 5 適用于 管理員。
在安裝 Pulsar Helm chart 之前,你必須創建一個 Kubernetes 集群。 你可以按照 指示 來準備一個Kubernetes集群。
We use Minikube in this quick start guide. 要準備一個 Kubernetes 集群,請遵循以下步驟:
在 Minikube 上創建一個 Kubernetes 集群。
minikube start --memory=8192 --cpus=4 --kubernetes-version=<k8s-version>
<k8s-version>
可以是 Minikube 安裝程序支持的任意 Kubernetes 版本 比如 v1.16.1
。
設置 kubectl
來使用 Minikube。
kubectl config use-context minikube
若要在 Minikube 上使用與本地 Kubernetes 集群的 Kubernetes Dashboard,輸入以下的命令:
minikube dashboard
這條命令會自動用你的瀏覽器打開一個網頁。
添加 Pulsar Helm 倉庫。
helm repo add apache https://pulsar.apache.org/charts
helm repo update
克隆 Pulsar Helm chart 的倉庫。
git clone https://github.com/apache/pulsar-helm-chartcd pulsar-helm-chart
運行腳本 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
使用 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
檢查所有 pod 的狀態。
kubectl get pods -n pulsar
如果所有 pod 都成功啟動,你會看到 STATUS
變為 Running
或 Completed
。
輸出
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
檢查命名空間 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
pulsar-admin
是 Pulsar 的 CLI(命令行客戶端) 工具。 這一步中,你可以使用 pulsar-admin
來創建資源,包括租戶、命名空間和主題。
進入 toolset
容器。
kubectl exec -it -n pulsar pulsar-mini-toolset-0 -- /bin/bash
在 toolset
容器里,創建一個名為 apache
的租戶。
bin/pulsar-admin tenants create apache
然后你可以列出所有租戶,來查看租戶是否創建成功。
bin/pulsar-admin tenants list
你應該能看到類似如下的輸出: 租戶 apache
已經被成功地創建了。
"apache""public""pulsar"
在 toolset
容器里,在租戶 apache
下創建一個名為 pulsar
的命名空間。
bin/pulsar-admin namespaces create apache/pulsar
然后你可以列出租戶 apache
的所有命名空間,來查看命名空間是否創建成功。
bin/pulsar-admin namespaces list apache
你應該能看到類似如下的輸出: 命名空間 apache/pulsar
已經被成功地創建了。
"apache/pulsar"
在 toolset
容器里,在命名空間 apache/pulsar
下創建一個包含 4
個分區的主題 test-topic
。
bin/pulsar-admin topics create-partitioned-topic apache/pulsar/test-topic -p 4
在 toolset
容器里,列出命名空間 apache/pulsar
中的所有分區主題。
bin/pulsar-admin topics list-partitioned-topics apache/pulsar
然后你可以看見命名空間 apache/pulsar
下的所有分區主題。
"persistent://apache/pulsar/test-topic"
你可以使用 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/
然后你可以繼續如下步驟:
從 下載頁面 下載 Apache Pulsar tarball。
基于你的下載文件解壓 tarball。
tar -xf <file-name>.tar.gz
暴露 PULSAR_HOME
。
(1) 輸入已解壓的下載文件的目錄。
(2) 將 PULSAR_HOME
暴露為環境變量。
```bash export PULSAR_HOME=$(pwd) ```
配置 Pulsar 客戶端。
在 ${PULSAR_HOME}/conf/client.conf
文件中,用你從上面步驟中獲得的服務 URL 來替換掉 webServiceUrl
與 brokerServiceUrl
。
創建訂閱以消耗來自 apache/pulsar/test-tope
的消息。
bin/pulsar-client consume -s sub apache/pulsar/test-topic -n 0
打開一個新的終端。 在新終端中,創建一個生產者并向 test-topic
主題發送10條消息。
bin/pulsar-client produce apache/pulsar/test-topic -m "---------hello apache pulsar-------" -n 10
驗證結果。
對于生產者而言
輸出
消息已被成功生產。
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-------
Pulsar Manager 是一個基于網絡 GUI 的管理工具,用于管理和監測Pulsar。
默認情況下, Pulsar Manager
作為一個獨立的 LoadBalancer
暴露給外界。 你可以使用以下命令打開 Pulsar Manager 界面:
minikube service -n pulsar pulsar-mini-pulsar-manager
Pulsar Manager UI 將會在你的瀏覽器中打開。 你可以使用用戶名 pulsar
和密碼 pulsar
來登錄進 Pulsar Manager。
在 Pulsar Manager UI 中,你可以創建一個環境。
點擊左上角的 New Environment
按鈕。
在彈窗中的 Environment Name
一欄里入 pulsar-mini
。
在彈窗中的 Service URL
一欄里輸入 http://pulsar-mini-broker:8080
。
點擊彈窗中的 Confirm
按鈕。
成功創建環境后,你將被重定向到新環境的 租戶
頁面。 然后你可以使用 Pulsar Manager 來創建 租戶
、命名空間
和 主題
。
Grafana 是一個開源的可視化工具,用于將時間序列數據直觀地可視化為儀表板。
默認情況下, Grafana 作為一個獨立的 LoadBalancer
暴露給外界。 你可以使用以下命令打開 Grafana 界面:
minikube service pulsar-mini-grafana -n pulsar
Grafana UI 會在你的瀏覽器中打開。 你可以使用用戶名 pulsar
和密碼 pulsar
來登錄進 Grafana儀表板。
你可以查看 Pulsar 集群的不同組件的儀表板。
關于Pulsar怎么部署到Kubernetes問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。