Dapr學習(2)之Rancher2.63(k8s&k3s)環境安裝Dapr
前言:前面寫過一篇關於dapr入門安裝的文章,self-host模式,使用docker安裝的本地調試環境,並進行了測試;本篇介紹k8s方式安裝dapr,此文主要基於的環境是k3s,通過rancher2.6.3版管理工具進行快捷安裝,並進行相關demo測試
1.k8s安裝dapr介紹
參考官網://docs.dapr.io/zh-hans/operations/hosting/kubernetes/kubernetes-deploy/
官網推薦使用helm方式安裝&高可用安裝;這裡不在贅述
2.Rancher2.6.3安裝Dapr
-
Rancher 添加商店helm源:添加 Dapr 源;//dapr.github.io/helm-charts/ 最新的安裝源,添加到商店
-
進入應用商店,搜索dapr
-
安裝最新版本,1.7.2版
-
由於我們安裝了1.6.1版本,我們選擇升級版本
-
安裝成功後,我們可以在Rancher管理介面看到幾個dapr組件
3.配置 狀態存儲 和 發布/訂閱 消息代理,查看官網://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版本程式碼://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節點下查看