你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
完成 安装 Dapr 扩展的先决条件后,可以使用各种配置选项将 Dapr 扩展配置为最适合你和项目,例如:
- 轮换过期证书
- 预配已启用高可用性 (HA) 的 Dapr
- 限制哪些节点可以使用 Dapr 扩展
- 设置自动自定义资源定义 (CRD) 更新
- 配置 Dapr 版本命名空间
该扩展允许使用 --configuration-settings Azure CLI 中的参数或 configurationSettings Bicep 模板中的属性来设置 Dapr 配置选项。
重要说明
从 2025 年 11 月 30 日开始,Azure Kubernetes 服务(AKS)不再支持或提供 Azure Linux 2.0 安全更新。 Azure Linux 2.0 节点映像在 202512.06.0 版中被冻结。 从 2026 年 3 月 31 日开始,将删除节点映像,并且无法缩放节点池。 通过将 节点池升级到 受支持的 Kubernetes 版本或迁移到 osSku AzureLinux3,迁移到受支持的 Azure Linux 版本。 有关详细信息,请参阅 停用 GitHub 问题和Azure 更新停用公告。 若要随时了解公告和更新,请关注AKS 发行说明。
更新配置设置
重要说明
创建后无法修改某些配置选项。 对这些选项的调整需要删除和重新创建扩展,适用于以下设置:
global.ha.*dapr_placement.*
HA 在默认情况下处于启用状态。 禁用它则需要删除和重新安装该扩展。
若要更新 Dapr 配置设置,请重新创建具有所需状态的扩展。 例如,假设你以前使用以下配置创建了并安装了扩展:
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"
要将 dapr_operator.replicaCount 从版本二更新到版本三,请使用以下命令重新创建扩展:
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"
管理 mTLS 证书
Dapr 扩展通过 Dapr Sentry 服务控制平面(一个中央证书颁发机构 CA)支持 Dapr 实例之间通信的传输中加密。 借助 Sentry 服务,可以使用自签名证书或用户提供的 x.509 证书进行通信加密。 若要详细了解如何设置 mTLS 证书,请参阅 开源 Dapr 文档。
可以自带证书,或者让 Dapr 自动创建和保留自签名根证书和颁发者证书。
重要说明
如果未显式配置证书,Dapr 将生成自签名证书,该证书有效期为一年。 目前,不建议使用 Dapr 生成的自签名证书。 最佳做法是生成自定义证书并手动更新它们。
管理 Dapr 生成的自签名证书
如果未提供任何自定义证书,Dapr 会自动创建并保留自签名证书,有效期为一年。 Dapr 扩展会安装 dapr-trust-bundle 机密,其中包含默认 dapr-system 命名空间下的证书信息。
检查当前 Dapr 生成的自签名证书的到期时间
可使用 Dapr CLI 检查 Kubernetes 群集的 Dapr 根证书何时过期。
dapr mtls expiry
预期输出:
Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC
还可以在 Kubernetes dapr-trust-bundle 机密数据中找到当前证书的到期日期。
kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates
预期输出:
notBefore=Dec 6 17:59:20 2024 GMT
notAfter=Dec 6 18:14:20 2025 GMT
生成新的 Dapr 生成的自签名证书
-
使用 Dapr CLI (建议):
请参阅 Dapr 使用 CLI 的根证书和颁发者证书升级指南。 -
使用
kubectl命令:
请参阅 Dapr 的 使用 Kubectl 更新根证书或颁发者证书的指南。
管理自己的用户提供的 x.509 证书
你也可自带自定义证书。
-
生成自定义证书:
创建自己的自定义证书;例如, Azure Key Vault 证书。 -
手动更新自定义证书:
请参阅 Dapr 开源文档, 使用kubectl手动更新自定义证书。
预配已启用高可用性 (HA) 的 Dapr
将global.ha.enabled参数设置为true以预配已启用高可用性 (HA) 的 Dapr。
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"
注意
如果配置设置敏感且需要保护(例如证书相关信息),请传递参数 --configuration-protected-settings 以保护值不被读取。
如果未传递任何配置设置,Dapr 配置默认为:
ha:
enabled: true
replicaCount: 3
disruption:
minimumAvailable: ""
maximumUnavailable: "25%"
prometheus:
enabled: true
port: 9090
mtls:
enabled: true
workloadCertTTL: 24h
allowedClockSkew: 15m
有关可用选项的列表,请参阅 Dapr 配置。
将扩展限制为某些节点
在某些配置中,你可能只想在特定节点上运行 Dapr。 可以通过在扩展配置中传递 nodeSelector 来限制扩展。 如果所需的 nodeSelector 包含 .,则必须通过 shell 和扩展对其进行转义。 例如,以下配置会仅将 Dapr 安装到包含topology.kubernetes.io/zone: "us-east-1c"的节点:
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/zone=us-east-1c"
若要管理 OS 和体系结构,请使用 和 global.daprControlPlaneOs 配置的global.daprControlPlaneArch:
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.daprControlPlaneOs=linux" \
--configuration-settings "global.daprControlPlaneArch=amd64"
在 HA 模式下,在多个可用性区域中安装 Dapr
默认情况下,放置服务使用类型为 standard_LRS 的存储类。 建议跨多个可用性区域在 HA 模式下安装 Dapr 时创建区域冗余存储类。 例如,要创建zrs类型存储类,请添加storageaccounttype参数:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: custom-zone-redundant-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
storageaccounttype: Premium_ZRS
安装 Dapr 时,请使用 YAML 文件中使用的存储类:
az k8s-extension create --cluster-type managedClusters
--cluster-name <your-AKS-cluster>
--resource-group <your-resource-group>
--name dapr
--extension-type Microsoft.Dapr
--auto-upgrade-minor-version true
--configuration-settings "dapr_placement.volumeclaims.storageClassName=custom-zone-redundant-storage"
配置 Dapr 版本命名空间
可以配置版本命名空间。
默认情况下,Dapr 扩展安装在 dapr-system 命名空间中。 若要替代它,请使用 --release-namespace。 若要重新定义命名空间,请包含群集 --scope。
az k8s-extension create \
--cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom
了解如何在 从 Dapr 开放源代码迁移到 Dapr 扩展时配置 Dapr 发布命名空间。
显示当前配置设置
使用 az k8s-extension show 命令显示当前的 Dapr 配置设置:
az k8s-extension show --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr
设置 Dapr 监视日志级别
可以使用 AKS 集群扩展来配置 Dapr 监控组件的设置。 例如,若要将 dapr_monitoring 的日志级别更新为 warn (仅在收到警告或错误时进行通知),请按以下设置 configuration-settings:
az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_monitoring.logLevel=warn"
为本地 Azure Arc 的 Dapr 扩展设置出站代理
如果要将出站代理与 AKS 的 Dapr 扩展配合使用,可以通过以下方式实现:
- 使用
dapr.io/env注释设置代理环境变量:HTTP_PROXYHTTPS_PROXYNO_PROXY
- 在 sidecar 中安装代理证书。
更新 Dapr 安装版本
如果使用的是特定的 Dapr 版本且不可用 --auto-upgrade-minor-version ,可以使用以下命令升级或降级 Dapr:
az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--version 1.12.0 # Version to upgrade or downgrade to
上述命令 仅更新 Dapr 控制平面。 若要更新 Dapr sidecars,请重启应用程序部署:
kubectl rollout restart deploy/<deployment-name>
使用基于 Azure Linux 的映像
从 Dapr 版本 1.8.0 开始,你可以将 Azure Linux 映像与 Dapr 扩展配合使用。 若要使用它们,请设置global.tag标志:
az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--set global.tag=1.10.0-mariner
- 详细了解如何将 基于 Mariner 的图像与 Dapr 配合使用。
- 详细了解如何在 AKS 上部署 Azure Linux。
禁用自动 CRD 更新
从 Dapr 版本 1.9.2 开始,扩展升级时会自动升级 CRD。 若要禁用此设置,可以将 hooks.applyCrds 设置为 false。
az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--configuration-settings "hooks.applyCrds=false"
注意
CRD 仅在升级时应用,在降级时跳过。
满足网络要求
AKS 和 Arc for Kubernetes 的 Dapr 扩展需要 https://:443 上的以下出站 URL 才能正常运行:
-
https://mcr.microsoft.com/daprio拉取 Dapr 工件的 URL - AKS 或 Kubernetes 的 Arc 所需的出站 URL