你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
安装适用于 Azure Kubernetes 服务 (AKS) 和已启用 Arc 的 Kubernetes 的 Dapr 扩展
Dapr 简化了在云和边缘上运行的可复原、无状态和有状态应用程序的构建,并支持语言和开发框架的多样性。 借助 Dapr 的挎斗体系结构,你可以保持代码不受平台影响,同时应对构建微服务的挑战,例如:
- 可靠且安全地调用其他服务
- 采用发布/订阅模式构建事件驱动的应用
- 生成可在多个云服务和主机(例如,Kubernetes 与虚拟机)上移植的应用程序
注意
如果计划在 Kubernetes 生产环境中安装 Dapr,请参阅适用于生产使用的 Dapr 准则文档页。
工作原理
Dapr 扩展使用 Azure CLI 或 Bicep 模板在已启用 AKS 或 Arc 的 Kubernetes 群集上预配 Dapr 控制平面,创建以下 Dapr 服务:
Dapr 服务 | 说明 |
---|---|
dapr-operator |
管理 Dapr 的组件更新和 Kubernetes 服务终结点(状态存储、发布/订阅等) |
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。 将这两个工具组合使用会导致冲突,并导致意外的行为。
先决条件
- Azure 订阅。 没有帐户? 创建免费帐户。
- 最新版本的 Azure CLI。
- 现有的 AKS 群集或连接的已启用 Arc 的 Kubernetes 群集。
- Azure Kubernetes 服务基于角色的访问控制管理员角色
选择你希望如何安装、部署和配置 Dapr 扩展。
开始之前
添加适用于群集扩展的 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 --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table
Microsoft.KubernetesConfiguration 提供程序应报告为“已注册”,如下面的示例输出所示:
Namespace RegistrationState RegistrationPolicy
--------------------------------- ------------------- --------------------
Microsoft.KubernetesConfiguration Registered RegistrationRequired
如果提供程序显示为“未注册”,请使用 az provider register 注册提供程序,如下面的示例所示:
az provider register --namespace Microsoft.KubernetesConfiguration
将 ExtenstionTypes
功能注册到 Azure 订阅
需要将 ExtensionTypes
功能注册到 Azure 订阅。 在终端中,验证你是否在正确的订阅中:
az account set --subscription <YOUR-AZURE-SUBSCRIPTION-ID>
注册 ExtenstionTypes
功能。
az feature registration create --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes
功能注册可能需要一些时间。 几分钟后,使用以下命令检查注册状态:
az feature show --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes
创建扩展并在 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
使托管 AKS 群集保持更新到最新版本
基于你的环境(开发、测试或生产),你可以随时了解最新的稳定 Dapr 版本。
选择版本串
配置扩展时,可以选择从特定版本序列安装 Dapr。 指定两个版本序列值之一:
值 | 描述 |
---|---|
stable |
默认。 |
dev |
早期版本,可能包含试验性功能。 不适合用于生产。 |
例如:
--release-train stable
配置 Dapr 控制平面的自动更新
警告
自动升级不适用于生产环境。 仅在开发或测试环境中启用对 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
查看可用的最新稳定 Dapr 版本
若要在生产环境中升级到最新的 Dapr 版本,需要手动升级。 首先查看你的托管 AKS 群集可用的稳定 Dapr 版本列表。 运行以下命令:
az k8s-extension extension-types list-versions-by-cluster --resource-group <myResourceGroup> --cluster-name <myCluster> --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable
若要查看你的托管 AKS 群集可用的最新稳定 Dapr 版本,请运行以下命令:
az k8s-extension extension-types list-versions-by-cluster --resource-group <myResourceGroup> --cluster-name <myCluster> --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable --show-latest
若要按位置查看可用的稳定 Dapr 版本的列表,请运行以下命令:
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr
面向特定 Dapr 版本
注意
Dapr 支持滚动窗口,仅包括当前版本和以前版本。 你需要负责保证这些受支持版本的最新状态。 如果使用的是较旧版本的 Dapr,则可能需要进行中间升级才能获得受支持的版本。
可使用相同的命令行参数安装特定版本的 Dapr 或回滚到以前的版本。 将 --auto-upgrade-minor-version
设置为 false
并将 --version
设置为想要安装的 Dapr 版本。 如果省略了 version
参数,则扩展将安装最新版本的 Dapr。 例如,若要使用 Dapr 1.13.5,请执行以下操作:
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 1.13.5
故障排除扩展错误
如果扩展无法进行创建或更新,请尝试 Dapr 扩展故障排除指南中的建议和解决方案。
对 Dapr 进行故障排除
通过常见的 Dapr 问题和解决方案指南对 Dapr 错误进行故障排除。
删除扩展
如果需要删除扩展并从 AKS 群集中删除 Dapr,可以使用以下命令:
az k8s-extension delete --resource-group <myResourceGroup> --cluster-name <myAKSCluster> --cluster-type managedClusters --name dapr
或者,你也可以移除 Bicep 模板。