在 k8s 以外的分布式環境中使用 Dapr

2022-10-08 20:57:17 字數 1305 閱讀 1475

在dapr 文件和實踐案例中多是推薦採用k8s, 其實我目前也是在k8s 上操作的,有公有雲tke,aks,還有私有雲的rancher ,它並沒有傳聞中的那麼難,而且我認為它非常容易上手。不過,我還是有很多人不願意使用k8s 。那麼在虛擬機器場景下如何使用dapr呢? 當然也有虛擬機器部署的案例,比如2023年第一屆daprconf 上分享的dapr case study: man group:

如果我們脫離k8s 的 虛擬機器環境下會碰到什麼問題?

你需要安裝 docker 來執行 dapr

使用invoke api進行名稱解析時無法在其他伺服器上找到 dapr 應用程式

除了這兩個問題,應該沒有什麼其他問題,因為根據 dapr 的配置檔案,它使用了外部伺服器或者服務。

我們先來看一下第乙個問題,在沒有 docker 的情況下使用 dapr ,官方文件裡已經給我們了答案:入門指南: 不使用 docker 在自託管模式下執行 dapr。

dapr cli 提供了使用 slim init 初始化 dapr 的選項,而無需預設建立依賴於 docker 的開發環境。 要使用 slim init 初始化 dapr ,請在安裝 dapr cli 後使用以下命令:

dapr init –slim

在此模式下安裝了兩個不同的二進位制檔案 daprd 和 placement。在此模式下,不會為狀態管理或發布/訂閱安裝任何預設元件,例如redis 和 zipkin 不會安裝,但是如果需要的話會單獨設定,所以沒有問題。

說到這裡,如果你是在用azure,在azure上有 managed hashicorp cosul serviceazure,簡稱hcs, 客戶可以通過azure marketplace將 hcs直接配置到他們的 azure 環境中,而 hashicorp 則負責服務的維護和運營。使用 hcs 允許使用者在雲、混合和本地場景中使用各種環境(包括虛擬機器和 kubernetes)。所以我嘗試了一下,但是我使用的賬號用不了,需要額外付費:

aws 上也有,具體可以看  consul on amazon ecs 0.3 adds extended configuration。

上面這兩個問題我們都解決了,總結一下:

docker 對於 dapr 來說並不是必需的。

如果你的環境支援使用多播,則可以使用 mdns 在多台伺服器上執行 dapr。

虛擬機器環境下推薦使用consul 作為名稱解析服務。

在k8s中使用harbor倉庫

將每個node節點上的docker同樣需要配置可信任倉庫 vi etc docker daemon.json 修改為 重啟docker systemctl restart docker 建立 kubectl create secret docker registry registry secret ...

k8s中使用到的證書

kubernetes 中使用了大量的證書,本文不會試圖覆蓋到所有可能使用到的證書,但會討論到主要的證書。理解了這些證書的使用方法和原理後,也能很快理解其他可能遇到的證書檔案。下圖標識出了在 kubernetes 中主要使用到的證書和其使用的位置 kubernetes 中使用到的主要證書 上圖中使用序...

在k8s集群中使用helm安裝harbor

使用helm安裝harbor需要準備如下 1 安裝helm 2 安裝provisioner 3 安裝traefik 使用helm安裝harbor git clone 開啟看一下分支 cd harbor helm git checkout 1.1.0 進入1.1.0分支 ls cert contrib...