Dapr微服务应用开发系列1:环境配置
題記:上篇Dapr系列文章簡要介紹了Dapr,這篇來談一下開發(fā)和運行環(huán)境配置
本機開發(fā)環(huán)境配置
安裝Docker
為了方便進行Dapr開發(fā),最好(其實不一定必須)首先在本機(開發(fā)機器)上安裝Docker。安裝方式可以參考Docker的官方文檔:https://docs.docker.com/install/。
如果你是Windows平臺,那么需要選擇Linux容器模式。對于我這樣的Windows 10用戶而言,個人建議最好的方式就是把Windows 10升級到2004,并啟用WSL2,然后啟用Docker Desktop WSL 2 backend[1]。這種方式可以獲得很好的用戶體驗和性能。
安裝CLI
通過如下腳本在不同平臺安裝最新的CLI(Dapr命令行工具):
Windows:
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
默認會安裝到 c:\dapr 目錄
Linux:
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
默認會安裝到 /usr/local/bin 目錄
MacOS
curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash
默認會安裝到 /usr/local/bin 目錄
或者通過Homebrew來安裝:brew install dapr/tap/dapr-cli
如果你想手動安裝CLI,比如希望安裝不同版本或者安裝到不同目錄。那么可以從這里(https://github.com/dapr/cli/releases)直接下載平臺對應(yīng)的二進制文件并解壓到適合的地方,并在PATH中注冊這個目錄。
安裝Runtime
在本機安裝Dapr運行時分為兩種模式,一種是完整模式,一種是簡易模式:
完整模式:需要Docker環(huán)境,運行 dapr init ,會自動下載Dapr的運行時 daprd ,并在Docker中啟動3個容器:
dapr_placement:Image為“daprio/dapr”,用于Dapr的Actor應(yīng)用的注冊
dapr_zipkin:Image為“openzipkin/zipkin”,用于分布式跟蹤的處理
dapr_redis:Image為“redis”,用于狀態(tài)存儲和發(fā)布訂閱處理
簡易模式:不需要Docker環(huán)境,運行 dapr init --slim,同樣會自動下載Dapr的運行時,并下載placement服務(wù)的二進制文件。
兩種模式下,有些配置也有所不同:
完整模式:會在Linux/MacOS的 $HOME/.dapr/components 目錄或Windows的 %USERPROFILE%\.dapr\components 目錄下面創(chuàng)建3個默認組件配置文件:pubsub.yaml使用redis容器作為發(fā)布訂閱組件、statestore.yaml使用redis容器作為狀態(tài)存儲組件和zipkin.yaml把分布式跟蹤的信息導(dǎo)出到zipkin容器;并添加Linux/MacOS的 $HOME/.dapr/config.yaml 或Windows的 %USERPROFILE%\.dapr\config.yaml 的默認配置文件,重點配置了分布式跟蹤的采樣率為1。
簡易模式:雖然會創(chuàng)建默認 components 目錄,但是不會創(chuàng)建默認組件配置文件。后續(xù)運行的時候,你需要自行創(chuàng)建默認組件配置文件或者指定服務(wù)的自定義組件配置文件。
容器開發(fā)環(huán)境配置
如果不想在本機安裝Dapr的CLI和Runtime,還可以利用Visual Studio Code Remote - Containers[2]的強大功能來實現(xiàn)開發(fā)環(huán)境的容器化。
Dapr為各種支持的開發(fā)語言默認提供了開發(fā)容器,方便你把任何項目轉(zhuǎn)換為Dapr應(yīng)用。
大致步驟如下:
創(chuàng)建項目,(可選)引用對應(yīng)語言的Dapr SDK
在VS Code中打開項目的工作區(qū)(Workspace)
在命令面板中輸入“Remote-Containers: Add Development Container Configuration Files...”
在選擇開發(fā)容器的時候,輸入“dapr”來進行查找,選擇對應(yīng)的語言版本,比如“Dapr with C#”
VS Code會自動給你的項目添加相關(guān)的Dockerfile和其他配置文件(比如“.devcontainer”文件夾)
VS Code檢測到.devcontainer文件夾后,會提示你是否要使用容器模式打開
通過容器模式打開后,會自動構(gòu)建項目工作區(qū)的容器鏡像,同時還會額外啟動用于容器開發(fā)的placement和zipkin容器實例(名稱為:dapr_placement_dapr-dev-container和dapr_zipkin_dapr-dev-container)
開發(fā)容器如下圖所示:
使用這種開發(fā)容器帶來的好處就是:整個Dapr開發(fā)的依賴環(huán)境可以通過Dockerfile來自動配置完成。
測試與生產(chǎn)環(huán)境配置
雖然Dapr可以運行到任意托管環(huán)境,不過目前最自然的選擇還是發(fā)布到 Kubernetes 集群當(dāng)中。
首先,你需要配置好一個Kubernetes集群,建議使用Azure Kubernetes Service(AKS),基本可以一鍵創(chuàng)建好集群[3]。
在做好kubectl和Kubernetes集群的連接之后,就可以開始安裝Dapr了。
如果是配置測試環(huán)境,那么只需要執(zhí)行如下命令就可以完成:
dapr init -k如果要配置生產(chǎn)環(huán)境,那么建議使用helm3來進行安裝:
helm repo add dapr https://daprio.azurecr.io/helm/v1/repo helm repo update kubectl create namespace dapr-system helm install dapr dapr/dapr --namespace dapr-systemDapr安裝到Kubernetes集群之后,會啟動如下Pod:
dapr-operator: 用來管理Dapr組件的更新和Dapr的kubernetes服務(wù)端點(比如狀態(tài)存儲、發(fā)布訂閱等)
dapr-sidecar-injector: 用來把Dapr運行時注入到被標記了的應(yīng)用Pod里面(即把Dapr運行時作為sidecar容器注入到Pod當(dāng)中)
dapr-placement: 管理Dapr的Actor應(yīng)用注冊
dapr-sentry: 管理服務(wù)之間的mTLS,并作為一個證書CA
總結(jié)
至此,Dapr的開發(fā)、測試和生產(chǎn)環(huán)境就配置完成了,接下來就是進入到開發(fā)階段了。
當(dāng)然,如果你需要卸載Dapr環(huán)境的話,只需要運行如下命令:
# 卸載本機開發(fā)環(huán)境 dapr uninstall # 卸載本機開發(fā)環(huán)境包括Redis和Zipkin容器實例 dapr uninstall --all # 卸載Kubernetes中的測試環(huán)境 dapr uninstall --kubernetes # 卸載Kubernetes中的生產(chǎn)環(huán)境 helm uninstall dapr -n dapr-system參考資料
[1]
Docker Desktop WSL 2 backend: https://docs.docker.com/docker-for-windows/wsl/
[2]Visual Studio Code Remote - Containers: https://code.visualstudio.com/docs/remote/containers
[3]Quickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough
總結(jié)
以上是生活随笔為你收集整理的Dapr微服务应用开发系列1:环境配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Visual Studio 201
- 下一篇: 欢迎来到 C# 9.0(Welcome