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

使用 CLI 升级间接连接的 Azure Arc 数据控制器

本文介绍如何使用 Azure CLI (az) 升级间接连接的已启用 Azure Arc 的数据控制器。

在数据控制器升级期间,自定义资源定义(CRD)和容器等部分数据控制平面可能会升级。 升级数据控制器不会导致数据服务(SQL 托管实例或 PostgreSQL 服务器)停机。

先决条件

需要具有 imageTag v1.0.0_2021-07-30 或更高版本的间接连接的数据控制器。

若要检查版本,请运行:

kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag

安装工具

在继续完成本文中的任务之前,需要安装以下项:

本文中的示例使用尖括号 < ... > 来标识在运行脚本之前需要替换的值。 替换括号和括号中的值。

arcdata 扩展版本与映像版本相关。 检查是否具有与版本日志中要升级到的映像版本对应的 arcdata 扩展版本。

查看可用映像并选择版本

使用以下命令拉取数据控制器的可用映像列表:

az arcdata dc list-upgrades --k8s-namespace <namespace>

上述命令返回如以下示例所示的输出:

Found 2 valid versions.  The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30

升级数据控制器

本部分演示如何升级间接连接的数据控制器。

注意

一些数据服务层级和模式已经是正式发布版,有些则以预览版提供。 如果在同一数据控制器上安装正式发布版和预览版服务,则无法就地升级。 若要升级,请删除所有非正式发布版数据库实例。 可以在发行说明中查找正式发布版和预览版服务的列表。

有关支持的升级路径,请参阅升级已启用 Azure Arc 的数据服务

升级

在开始升级 Azure Arc 数据控制器之前,你将需要连接到 Kubernetes 群集并向其进行身份验证,并选择一个现有的 Kubernetes 上下文。

可以先执行试运行。 试运行验证注册表是否存在、版本架构和专用存储库授权令牌(如果使用)。 若要执行试运行,请使用 az arcdata dc upgrade 命令中的 --dry-run 参数。 例如:

az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s

以上命令的输出为:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>

要升级数据控制器,请运行 az arcdata dc upgrade 命令,并指定 --desired-version 映像标记。

az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s

示例:

az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s

以上命令的输出显示步骤的状态:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job

监视升级状态

升级过程分为两部分。 首先升级控制器,然后升级监视堆栈。 可以使用 CLI 监视升级进度。

CLI

 az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s

升级完成后,输出将为:

Ready

疑难解答

当所需版本设置为特定版本时,引导程序作业将尝试升级到该版本,直到它成功为止。 如果升级成功,则规范的 RunningVersion 属性将更新为新版本。 对于映像标记不正确、无法连接到注册表或存储库、分配给容器的 CPU 或内存不足或存储不足等情况,升级可能会失败。

  1. 运行以下命令,查看是否有任何 Pod 显示 Error 状态或具有较高重启次数:

    kubectl get pods --namespace <namespace>
    
  2. 若要查看事件以了解是否存在错误,请运行

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. 若要获取 Pod 中的容器列表,请运行

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. 若要获取容器的日志,请运行

    kubectl logs <pod name> <container name> --namespace <namespace>
    

若要查看常见错误以及如何对其进行故障排除,请转到对资源进行故障排除