適用於 Azure Kubernetes Service (AKS) 和已啟用 Arc 的 Kubernetes 的 Dapr 延伸模組
Dapr 可簡化建置於雲端和邊緣上執行的復原性、無狀態和具狀態應用程式,並接納語言和開發人員架構的多樣性。 透過 Dapr 的側車 (Sidecar) 架構,您可以讓程式碼平台不受限制,同時解決建置微服務方面的挑戰,例如:
- 可靠地安全地呼叫其他服務
- 使用 pub/sub 建置事件驅動應用程式
- 建置可攜帶到多個雲端服務和主機的應用程式 (例如 Kubernetes 與 VM)
使用 Dapr 延伸模組在 AKS 或已啟用 Arc 的 Kubernetes 叢集上佈建 Dapr (部分機器翻譯) 可消除下列動作所產生的額外負荷:
- 下載 Dapr 工具
- 在 AKS 叢集上手動安裝和管理執行階段
此外,延伸模組透過簡單的命令列引數,為所有原生 Dapr 設定功能提供支援。
注意
如果您打算在 Kubernetes 實際執行環境中安裝 Dapr,請參閱供生產使用的 Dapr 指南說明文件頁面。
運作方式
Dapr 延伸模組使用 Azure CLI,在 AKS 或已啟用 Arc 的 Kubernetes 叢集上佈建 Dapr 控制平面,建立下列 Dapr 服務:
Dapr 服務 | 描述 |
---|---|
dapr-operator |
管理 Dapr 的元件更新和 Kubernetes 服務端點 (狀態存放區、pub/sub 等) |
dapr-sidecar-injector |
將 Dapr 插入註解式部署 Pod,並新增環境變數 DAPR_HTTP_PORT 與 DAPR_GRPC_PORT ,讓使用者定義的應用程式能夠輕鬆地與 Dapr 通訊,而不需已寫入程式碼的 Dapr 連接埠值。 |
dapr-placement |
僅適用於執行者。 建立對應資料表,將執行者執行個體對應至 Pod。 |
dapr-sentry |
管理服務之間的 mTLS,並作為憑證授權單位。 如需詳細資訊,請參閱安全性概觀。 |
在叢集上安裝 Dapr 之後,您就可以新增一些註釋至您的部署,以開始使用 Dapr 建置組塊 API 進行開發。 如需組建組塊 API 及其最佳使用方式的更深入概觀,請參閱 Dapr 組建組塊概觀。
警告
如果您透過 AKS 或已啟用 Arc 的 Kubernetes 延伸模組來安裝 Dapr,則建議繼續使用此延伸模組以進一步管理 Dapr,而不是 Dapr CLI。 合併這兩個工具可能會導致衝突,並導致出現不想要的行為。
目前支援
Dapr 版本
Dapr 延伸模組支援會根據您管理執行階段的方式而不同。
自我管理
針對自我管理執行階段,Dapr 延伸模組支援:
- 最新版的 Dapr 和兩個舊版 (N-2)
- 以累加方式升級次要版本 (例如,1.5 -> 1.6 -> 1.7)
自我管理執行階段需要手動升級,才能保留在支援時間範圍中。 若要透過延伸模組來升級 Dapr,請遵循更新延伸模組執行個體 (部分機器翻譯) 指示。
自動升級
啟用自動升級可讓 Dapr 延伸模組更新為最新的次要版本。 您可能會在更新之間遇到重大變更。
元件
支援 Azure + 開放原始碼元件。 Alpha 和 Beta 元件可透過最大投入量予以支援。
雲端/區域
下列區域的 Arc 支援一併支援全域 Azure 雲端:
區域 | AKS 支援 | 適用於 Kubernetes 的 Arc 支援 |
---|---|---|
australiaeast |
✔️ | ✔️ |
australiasoutheast |
✔️ | ❌ |
brazilsouth |
✔️ | ❌ |
canadacentral |
✔️ | ✔️ |
canadaeast |
✔️ | ✔️ |
centralindia |
✔️ | ✔️ |
centralus |
✔️ | ✔️ |
eastasia |
✔️ | ✔️ |
eastus |
✔️ | ✔️ |
eastus2 |
✔️ | ✔️ |
eastus2euap |
❌ | ✔️ |
francecentral |
✔️ | ✔️ |
francesouth |
✔️ | ❌ |
germanywestcentral |
✔️ | ✔️ |
japaneast |
✔️ | ✔️ |
japanwest |
✔️ | ❌ |
koreacentral |
✔️ | ✔️ |
koreasouth |
✔️ | ❌ |
northcentralus |
✔️ | ✔️ |
northeurope |
✔️ | ✔️ |
norwayeast |
✔️ | ❌ |
southafricanorth |
✔️ | ❌ |
southcentralus |
✔️ | ✔️ |
southeastasia |
✔️ | ✔️ |
southindia |
✔️ | ❌ |
swedencentral |
✔️ | ✔️ |
switzerlandnorth |
✔️ | ✔️ |
uaenorth |
✔️ | ❌ |
uksouth |
✔️ | ✔️ |
ukwest |
✔️ | ❌ |
westcentralus |
✔️ | ✔️ |
westeurope |
✔️ | ✔️ |
westus |
✔️ | ✔️ |
westus2 |
✔️ | ✔️ |
westus3 |
✔️ | ✔️ |
必要條件
- 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- 安裝最新版的 Azure CLI。
- 如果您還沒有,則需要建立 AKS 叢集,或連線已啟用 Arc 的 Kubernetes 叢集。
- 確定您有 Azure Kubernetes Service RBAC 管理員角色 (部分機器翻譯)
設定叢集延伸模組的 Azure CLI 延伸模組
執行下列命令來安裝 k8s-extension
Azure CLI 延伸模組:
az extension add --name k8s-extension
如果已安裝 k8s-extension
延伸模組,您就可以使用下列命令,將其更新至最新版本:
az extension update --name k8s-extension
註冊 KubernetesConfiguration
服務提供者
如果您先前未使用叢集延伸模組,則可能需要透過訂用帳戶註冊服務提供者。 您可以使用 [az provider list][az-provider-list] 命令來檢查提供者註冊的狀態,如下列範例所示:
az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table
Microsoft.KubernetesConfiguration 提供者應該回報為 Registered,如下列範例輸出所示:
Namespace RegistrationState RegistrationPolicy
--------------------------------- ------------------- --------------------
Microsoft.KubernetesConfiguration Registered RegistrationRequired
如果提供者顯示為 NotRegistered,請使用 az provider register 來註冊提供者,如下列範例所示:
az provider register --namespace Microsoft.KubernetesConfiguration
在 AKS 或已啟用 Arc 的 Kubernetes 叢集上,建立延伸模組並安裝 Dapr
安裝 Dapr 延伸模組時,請使用對應至叢集類型的旗標值:
- AKS 叢集:
--cluster-type managedClusters
。 - 已啟用 Arc 的 Kubernetes 叢集:
--cluster-type connectedClusters
。
注意
如果您在 AKS 叢集上使用 Dapr OSS,而且想要安裝適用於 AKS 的 Dapr 延伸模組,請閱讀如何成功移轉至 Dapr 延伸模組的其他資訊。
建立 Dapr 延伸模組,以在 AKS 或已啟用 Arc 的 Kubernetes 叢集上安裝 Dapr。
例如,透過 AKS 叢集上的 Dapr 延伸模組安裝最新版的 Dapr:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false
以特定 Dapr 版本為目標
注意
運行視窗僅支援 Dapr,包括目前版本和舊版。 讓這些支援的版本維持最新狀態,是您在作業時應盡的責任。 如果您有舊版的 Dapr,您可能必須進行中繼升級,才能使用支援的版本。
使用相同的命令列引數安裝特定版本的 Dapr,或回復至舊版。 將 --auto-upgrade-minor-version
設為 false
與 --version
,以獲得您要安裝的 Dapr 版本。 如果省略 version
參數,延伸模組會安裝最新版的 Dapr。 例如,若要使用 Dapr X.X.X:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version X.X.X
設定 Dapr 控制平面的自動更新
警告
您只能在開發或測試環境中,啟用 Dapr 控制平面的自動更新。 自動升級不適用於實際執行環境。
如果您在未指定版本的情況下安裝 Dapr,--auto-upgrade-minor-version
會自動啟用,並將 Dapr 控制平面設定為在新版本上自動更新其次要版本。
您可以指定 --auto-upgrade-minor-version
參數並將值設定為 false
,以停用自動更新。
Dapr 版本設定的格式為 MAJOR.MINOR.PATCH
(英文),這表示 1.11.0
到 1.12.0
是「次要」版本升級。
--auto-upgrade-minor-version true
選擇發行訓練
設定延伸模組時,您可以選擇從特定的 --release-train
安裝 Dapr。 指定這兩個發行訓練值的其中一個:
值 | Description |
---|---|
stable |
預設。 |
dev |
早期版本,可以包含實驗性功能。 不適用於實際執行環境。 |
例如:
--release-train stable
針對延伸模組錯誤進行疑難排解
如果此延伸模組無法建立或更新,請嘗試 Dapr 延伸模組疑難排解指南中的建議和解決方案。
針對 Dapr 進行疑難排解
透過常見的 Dapr 問題和解決方案指南,針對 Dapr 錯誤進行疑難排解。
刪除延伸模組
如果您需要刪除延伸模組,並從 AKS 叢集中移除 Dapr,您可以使用下列命令:
az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSCluster --cluster-type managedClusters --name dapr
後續步驟
- 深入了解您可以在 Dapr 延伸模組上設定的額外設定和喜好設定。
- 成功在 AKS 叢集中佈建 Dapr 之後,請嘗試部署一個 範例應用程式。
- 試用適用於 AKS 的 Dapr 延伸模組上的 Dapr 工作流程 (部分機器翻譯)