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

从 Dapr OSS 迁移到适用于 Azure Kubernetes 服务 (AKS) 的 Dapr 扩展

已在 Kubernetes 群集上安装和配置 Dapr OSS,并希望迁移到 AKS 上的 Dapr 扩展。 本指南介绍 Dapr 如何通过以下方式之一将托管群集从使用 Dapr OSS 迁移到使用 Dapr 扩展:

  • 通过 CLI 提示符(默认方法)检查现有 Dapr 安装;或
  • 使用 Helm 版本名称和命名空间配置设置来手动检查现有 Dapr 安装。

此检查允许 Dapr 扩展重用以前安装中已有的 Kubernetes 资源并开始管理这些资源。

检查现有 Dapr 安装

默认情况下,运行 az k8s-extension create 命令时,Dapr 扩展会检查现有的 Dapr 安装。 若要列出当前 Dapr 安装的详细信息,请运行以下命令并保存 Dapr 版本名称和命名空间:

helm list -A

安装扩展时,会收到一条提示,询问是否已安装 Dapr:

Is Dapr already installed in the cluster? (y/N): y

如果已安装 Dapr,请在出现以下提示时输入 Helm 版本名称和命名空间(通过 helm list -A 获取):

Enter the Helm release name for Dapr, or press Enter to use the default name [dapr]:
Enter the namespace where Dapr is installed, or press Enter to use the default namespace [dapr-system]:

使用 --configuration-settings 配置 Dapr 检查

或者,可以在创建 Dapr 扩展时通过 --configuration-settings 配置上述设置。 通过 bash 脚本、CI 管道等自动执行安装时,此方法非常有用。

如果群集上尚未安装 Dapr,请将 skipExistingDaprCheck 设置为 true

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKScluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--configuration-settings "skipExistingDaprCheck=true"

如果群集上存在 Dapr,请通过 --configuration-settings 设置 Helm 版本名称和命名空间(通过 helm list -A 获取):

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKScluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--configuration-settings "existingDaprReleaseName=dapr" \
--configuration-settings "existingDaprReleaseNamespace=dapr-system"

更新 HA 模式或放置服务设置

在现有 Dapr 安装基础上安装 Dapr 扩展时,会看到以下提示:

The extension will be installed on your existing Dapr installation. Note, if you have updated the default values for global.ha.* or dapr_placement.* in your existing Dapr installation, you must provide them in the configuration settings. Failing to do so will result in an error, since Helm upgrade will try to modify the StatefulSet. See <link> for more information.

Kubernetes 仅允许修补 StatefulSet 中有限的字段,如果配置了上述任何设置,则升级放置服务会失败。 可以按照以下步骤更新这些设置:

  1. 删除 StatefulSet。

    kubectl delete statefulset.apps/dapr-placement-server -n dapr-system
    
  2. 更新 HA 模式:

    az k8s-extension update --cluster-type managedClusters \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --name dapr \
    --extension-type Microsoft.Dapr \
    --auto-upgrade-minor-version true \  
    --configuration-settings "global.ha.enabled=true" \    
    

有关详细信息,请参阅 Dapr 生产指导

后续步骤

详细了解群集扩展以及如何使用它