4小時Dapr+.NET 5+K8S 的實戰 https://ke.qq.com/course/4000292?tuin=1271860f
Dapr進階虛拟機叢集實戰(非K8S) https://ke.qq.com/course/4002149?tuin=1271860f

為了實作在k8s上安裝Dapr,Dapr需要部署<code>dapr-sidecar-injector</code>、<code>dapr-operator</code>、<code>dapr-placement</code>和<code>dapr-sentry</code>服務。
dapr-operator: 管理元件(state stores, pub/subs, etc.)
dapr-sidecar-injector: 将 Dapr 注入 annotated pods,并添加環境變量 <code>DAPR_HTTP_PORT</code> 和 <code>DAPR_GRPC_PORT</code>,以使使用者定義的應用程式能夠輕松地與 Dapr Sidecar通信,而無需寫死 Dapr 端口值。
dapr-placement: 将 actor 執行個體映射到 pods。
dapr-sentry: 管理服務之間的mTLS并作為證書頒發機構。
通常使用以下方法本地安裝的K8S叢集
k8s-for-docker-desktop
kubeadm
我本地已經安裝好了這兩種,這次使用kubeadm 1.20版本示範dapr
vs中分别右擊Frontend和Backend,添加Docker支援,即可生成對應的Dockerfile,修改暴露端口
通過以下指令Build Image
我使用阿裡雲私有倉庫來上傳鏡像,建立frontend和backend兩個庫
按照以下提示步驟将frontend和backend Image上傳到指定庫
k8s主節點登入阿裡雲私庫
docker登入之後,會把密鑰存到一個配置檔案,通過下面指令拿到base64編碼資訊
建立ali-docker-repo.yaml,.dockerconfigjson就是上一步得到的base64
apply secret
下面指令将DaprCLI安裝到 /usr/local/bin
首先,請確定你的機器已經安裝了 Helm 3 。
然後,添加 Helm 庫并更新
将 Dapr 圖表安裝在你的叢集的 <code>dapr-system</code>命名空間中。
驗證安裝
我們仍然通過helm安裝redis,因為redis是statefulset,是以需要先把redis依賴的storageclass和pv建立好
建立redis-storage-class.yaml
apply storageclass
由于我們即将安裝的redis,使用預設的storageclass,我們需要把我們剛剛建立的storageclass置為預設
因為我們即将安裝的redis叢集有四個節點,我們需建立四個pv,建立檔案redis-pv.yaml
因為我們指定了四個pv排程在k8s-node1上,是以需要去node1上建立挂載目錄/local-storage/redis
apply pv
安裝redis到叢集
檢視redis pod
建立storestate元件,建立redis-state.yaml
建立pubsub元件
apply statestore和pubsub
驗證
在 Kubernetes 叢集中部署和運作啟用 Dapr 的應用程式非常簡單,隻需向 deployment 方案添加一些annotations
分别apply backend和frontend
檢視pod
為frontend建立service
采用nodeport方式暴露31111端口,apply service
通路http://192.168.43.150:31111/Dapr,其中192.168.43.150是主控端ip,結果顯示通路成功,k8s部署dapr成功
最後:整個教程的源碼
https://github.com/cysnet/dapr-aspnetcore-demo