前言:前面寫過一篇關於dapr入門安裝的文章,self-host模式,使用docker安裝的本地除錯環境,並進行了測試;本篇介紹k8s方式安裝dapr,此文主要基於的環境是k3s,通過rancher2.6.3版管理工具進行快捷安裝,並進行相關demo測試
1.k8s安裝dapr介紹
參考官網:https://docs.dapr.io/zh-hans/operations/hosting/kubernetes/kubernetes-deploy/
官網推薦使用helm方式安裝&高可用安裝;這裡不在贅述
2.Rancher2.6.3安裝Dapr
-
Rancher 新增商店helm源:新增 Dapr 源;https://dapr.github.io/helm-charts/ 最新的安裝源,新增到商店
-
進入應用商店,搜尋dapr
-
安裝最新版本,1.7.2版
-
由於我們安裝了1.6.1版本,我們選擇升級版本
-
安裝成功後,我們可以在Rancher管理介面看到幾個dapr元件
3.配置 狀態儲存 和 釋出/訂閱 訊息代理,檢視官網:https://docs.dapr.io/zh-hans/reference/components-reference/supported-state-stores/ 可以看到狀態儲存等支援的資料庫型別;
-
我們這裡使用官網推薦的redis作為狀態儲存
-
使用Rancher建立一個單例項的redis容器;Dapr使用redis儲存,要求redis版本>5;映象:index.docker.io/library/redis:6.2.6
設定密碼命令:redis-server --requirepass 123456
環境變數也可以設定成空密碼訪問:ALLOW_EMPTY_PASSWORD=yes
4.Dapr快速入門demo之hello-kubernetes
-
去github官網下載demo-1.7版本程式碼:https://github.com/dapr/quickstarts/tree/release-1.7/tutorials/hello-kubernetes
-
建立一個daprdemo的名稱空間,部署nodejs服務
命令:sudo kubectl apply -f node.yaml -n daprdemo 檢視部署狀態:sudo kubectl rollout status deploy/nodeapp -n daprdemo
-
修改node.yaml檔案,因為80埠已被佔用,會導致部署問題,把80埠改為3000埠,與nodeapp釋放埠一致
-
nodeapp服務部署完畢後,可以通過rancher檢視或者編輯對外訪問埠,然後可通過k8s任一節點ip+埠訪問nodeapp服務
-
我們也可以通過命令指定對外訪問的埠,這樣我就可以通過30018埠訪問nodeapp:
kubectl port-forward service/nodeapp 30018:3000
-
我們通過瀏覽器,可以訪問nodeapp服務,返回dapr的埠資訊
-
我們在daprdemo的名稱空間下,建立一個state元件,供nodeapp服務使用;要保證state元件與nodeapp服務同屬於同一名稱空間下,否則nodeapp服務是無法訪問到state元件的
-
輸入命令,構建state元件
sudo kubectl apply -f redis-state.yaml -n daprdemo
-
使用apifox工具,請求nodeapp服務,新建一個訂單
-
獲取訂單
5.Rancher2.6.3 Dapr dashboard訪問
-
找到Dapr dashbord服務資訊
-
點選進入dashbord介面
6.部署python服務app
-
輸入命令部署app,並檢視部署狀態
kubectl apply -f python.yaml -n daprdemo kubectl rollout status deploy/pythonapp -n daprdemo
-
檢視nodeapp的日誌
kubectl logs --selector=app=node -c node --tail=-1 -n daprdemo
-
獲取訂單號
7.清理所有應用(進入到yaml檔案所在目錄)
kubectl delete -f . -n daprdemo
8.Rancher檢視Dapr元件資訊
-
在Rancher管理介面的“更多資源”節點下,dapr.io節點下檢視