你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Azure Kubernetes 服务 (AKS) 和已启用 Arc 的 Kubernetes 的 Dapr 扩展

Dapr 简化了在云和边缘上运行的可复原、无状态和有状态应用程序的构建,并支持语言和开发框架的多样性。 借助 Dapr 的挎斗体系结构,你可以保持代码不受平台影响,同时应对构建微服务的挑战,例如:

  • 可靠且安全地调用其他服务
  • 采用发布/订阅模式构建事件驱动的应用
  • 生成可在多个云服务和主机(例如,Kubernetes 与 VM)上移植的应用程序

注意

如果计划在 Kubernetes 生产环境中安装 Dapr,请参阅适用于生产使用的 Dapr 准则文档页。

工作原理

Dapr 扩展使用 Azure CLI 或 Bicep 模板在已启用 AKS 或 Arc 的 Kubernetes 群集上预配 Dapr 控制平面,创建以下 Dapr 服务:

Dapr 服务 说明
dapr-operator 管理 Dapr 的组件更新和 Kubernetes 服务终结点(状态存储、发布/订阅等)
dapr-sidecar-injector 将 Dapr 注入到批注的部署 Pod 中并添加环境变量 DAPR_HTTP_PORTDAPR_GRPC_PORT,使用户定义的应用程序轻松地与 Dapr 进行通信,而无需对 Dapr 端口值进行硬编码。
dapr-placement 仅限参与者使用。 创建将执行组件实例映射到 Pod 的映射表
dapr-sentry 管理服务之间的 mTLS 并充当证书颁发机构。 有关详细信息,请参阅安全概述

在群集上安装 Dapr 后,可以通过向部署中添加一些注释来开始使用 Dapr 构建基块 API 进行开发。 有关构建基块 API 以及如何最好地使用它们的更深入的概述,请参阅 Dapr 构建基块概述

警告

如果通过 AKS 或已启用 Arc 的 Kubernetes 扩展安装 Dapr,我们建议继续使用该扩展以供将来管理 Dapr,而不是 Dapr CLI。 将这两个工具组合使用会导致冲突,并导致意外的行为。

先决条件

选择你希望如何安装、部署和配置 Dapr 扩展。

设置适用于群集扩展的 Azure CLI 扩展

运行以下命令安装 k8s-extensionAzure 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 提供程序应报告为“已注册”,如下面的示例输出所示:

Namespace                          RegistrationState    RegistrationPolicy
---------------------------------  -------------------  --------------------
Microsoft.KubernetesConfiguration  Registered           RegistrationRequired

如果提供程序显示为“未注册”,请使用 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,--auto-upgrade-minor-version会自动启用,并将 Dapr 控制平面配置为当有新版本可用时自动更新其次要版本。

可以通过指定 --auto-upgrade-minor-version 参数并将值设置为 false 来禁用自动更新。

Dapr 版本控制采用 MAJOR.MINOR.PATCH 格式,这意味着从 1.11.01.12.0 是次要版本升级。

--auto-upgrade-minor-version true

面向特定 Dapr 版本

注意

Dapr 支持滚动窗口,仅包括当前版本和以前版本。 你需要负责保证这些受支持版本的最新状态。 如果使用的是较旧版本的 Dapr,则可能需要进行中间升级才能获得受支持的版本。

可使用相同的命令行参数安装特定版本的 Dapr 或回滚到以前的版本。 将 --auto-upgrade-minor-version 设置为 false 并将 --version 设置为想要安装的 Dapr 版本。 如果省略了 version 参数,则扩展将安装最新版本的 Dapr。 例如,若要使用 Dapr 1.11.2,请执行以下操作:

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.11.2

选择版本串

配置扩展时,可以选择从特定版本序列安装 Dapr。 指定两个版本序列值之一:

描述
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

也可直接删除 Bicep 模板。

后续步骤