通过


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

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

Distributed Application Runtime (Dapr) 将提供各种 API,可帮助你编写和实现简单、可移植、可复原且受保护的微服务。 Dapr API 作为挎斗进程与你的应用程序协同运行,并抽象化构建分布式应用程序时可能遇到的常见复杂性,例如:

  • 服务发现
  • 消息代理集成
  • 加密
  • 可观察性
  • 机密管理

Dapr 可增量采用。 你可以根据需要使用任何 API 构建基块。 若要了解 Microsoft 对 Dapr 扩展的支持级别,请参阅 问题处理

功能和特性

使用 Dapr 扩展 在已启用 AKS 或 Arc 的 Kubernetes 群集上预配 Dapr 可消除以下开销:

  • 下载 Dapr 工具
  • 在 AKS 群集上手动安装和管理 Dapr 运行时

可以使用 Azure CLI 或 Bicep 模板在群集上安装、部署和配置 Dapr 扩展。

此外,该扩展为所有本机 Dapr 配置功能提供支持,通过简单的命令行参数。

Dapr 提供下面一组功能来帮助你在 AKS 上进行微服务开发:

  • 通过群集扩展在 AKS 上轻松预配 Dapr。
  • 通过 HTTP 和 gRPC API 实现可移植性,这些 API 抽象了基础技术选择
  • 通过 HTTP 和 gRPC API 实现可靠、安全且高可用性的服务到服务调用
  • 支持 CloudEvent 筛选和消息传递的至少一次语义,简化发布-订阅消息传递
  • 通过 Open Telemetry API 收集器实现插接式可观测性和监视
  • 语言独立,同时提供特定于语言的软件开发工具包(SDK)
  • 通过 Dapr 扩展与 Visual Studio Code 集成
  • 用于解决分布式应用程序挑战的构建模块 API

问题处理

Microsoft 将针对 Dapr 扩展提出的问题分为两部分进行分类:

  • 扩展操作
  • Dapr 运行时(包括 API 和组件)

下表细分了每个类别的支持优先级。

说明 安全风险/回归问题 功能问题
扩展操作 在扩展作期间遇到的问题,例如安装、卸载或升级 Dapr 扩展。 Microsoft 会将其优先处理以便立即解决。 Microsoft 根据需要进行调查和解决。
Dapr 运行时 通过扩展使用 Dapr 运行时、API 和组件时遇到的问题,例如证书过期和意外组件行为。 请与 Dapr 开源项目 协作,在修补程序或将来的 Dapr 开源版本中解决。 在 Dapr 开放源代码中发布修补程序后,它们就会在 Dapr 扩展中提供。 目前,Microsoft不会调查已知的开源安全风险和回归。 Dapr 开源项目讨论问题,以在热修复或未来的 Dapr 开源版本中解决。 目前,Microsoft不会调查已知的开源功能问题。

云/区域

在以下地区中,AKS 和 Arc 支持全球 Azure 云:

区域 AKS 支持 Arc for Kubernetes 支持
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 ✔️ ✔️

常见问题解答

Dapr 与服务网格如何比较?

虽然 Dapr 和服务网格确实提供一些共有的功能,但服务网格注重于网络问题,而 Dapr 注重于提供构建基块,使得将应用程序构建为微服务更为容易。 Dapr 以开发人员为中心,而服务网格以基础结构为中心。

Dapr 与服务网格共有的一些常见功能包括:

  • 使用 mTLS 加密来保护服务到服务的通信
  • 服务间指标收集
  • 服务间分布式追踪
  • 通过重试实现弹性

Dapr 还为状态管理、发布/订阅消息传递、执行组件等提供其他应用程序级构建基块。 但是,Dapr 不提供路由或流量拆分等流量行为的功能。 如果你的解决方案可受益于服务网格提供的流量拆分,请考虑使用 Open Service Mesh

有关 Dapr 和服务网格的详细信息以及如何将它们一起使用,请访问 Dapr 文档

Dapr 机密 API 与机密存储 CSI 驱动程序有何差异?

Dapr 机密 API 和托管的机密存储 CSI 驱动程序都允许集成保存在外部存储中的机密,可以从应用程序代码中抽象机密存储技术。

机密存储 CSI 驱动程序将 Azure 密钥保管库中保存的机密装载为 CSI 卷,以供应用程序使用。

Dapr 通过 RESTful API 公开机密,它可以是:

  • 由应用程序代码调用
  • 配置了各种机密存储

下表列出了每种产品/服务的功能:

Dapr 机密 API 机密存储 CSI 驱动程序
支持的密钥存储 本地环境变量(用于开发):本地文件(用于开发);Kubernetes 机密;AWS 机密管理器;Azure Key Vault 机密存储;在 Kubernetes 上使用托管标识的 Azure Key Vault;GCP 机密管理器;HashiCorp Vault Azure 密钥保管库机密存储
在应用程序代码中访问机密 调用 Dapr 机密 API 访问用作 Kubernetes 机密的装载卷或同步装载内容并设置环境变量
机密轮换 新的 API 调用获取更新的机密 按照可配置的间隔轮询机密并更新装载内容
日志记录和指标 Dapr 附属组件生成日志(可以使用 Azure Monitor 等收集器配置日志),通过 Prometheus 发出指标,并公开一个 HTTP 终结点用于运行状况检查 通过 Prometheus 输出驱动程序和 Azure 密钥保管库提供程序指标

若要详细了解 Dapr 中的机密管理,请参阅 机密管理概述

有关机密存储 CSI 驱动程序和 Azure 密钥保管库提供程序的详细信息,请参阅机密存储 CSI 驱动程序概述

托管 Dapr 群集扩展与开源 Dapr 产品/服务相比如何?

使用托管的 Dapr 群集扩展是在 AKS 群集上预配 Dapr 的最简单方法。 使用该扩展,可以通过选择启用自动升级来减轻 Dapr 运行时版本的管理负担。 此外,该扩展使用智能默认设置安装 Dapr(例如,在高可用性模式下预配 Dapr 控制平面)。

通过 helm 或 Dapr CLI 安装 Dapr 开放源代码时,开发人员和群集维护人员还负责运行时版本和配置选项。

最后,Dapr 扩展是 AKS 的扩展,因此其支持策略预期与其他 AKS 功能相同。

了解有关 从 Dapr 开放源代码迁移到 AKS 的 Dapr 扩展的详细信息。

如何使用托管标识通过 Microsoft Entra ID 对 Dapr 组件进行身份验证?

如果已通过 Helm 等方法安装了 Dapr,如何切换到使用 Dapr 扩展?

建议的指导是从 AKS 群集中完全卸载 Dapr,然后通过群集扩展重新安装。 还可以 检查现有的 Dapr 安装并将其迁移到 AKS

如果通过 AKS 扩展安装 Dapr,我们建议继续使用该扩展以供将来管理 Dapr,而不是 Dapr CLI。 将这两个工具组合使用可能引起冲突并导致意想不到的行为。

后续步骤