Поделиться через


Обновление косвенно подключенного контроллера данных Azure Arc с помощью CLI

В этой статье описывается обновление косвенно подключенного контроллера данных с поддержкой Azure Arc с помощью Azure CLI (az).

Во время обновления контроллера данных могут обновляться части плоскости управления данными, такие как пользовательские определения ресурсов (CRD) и контейнеры. Обновление контроллера данных не приведет к простою для служб данных.

Prerequisites

Вам потребуется косвенно подключенный контроллер данных с imageTag v1.0.0_2021-07-30 или более поздней версии.

Чтобы проверить версию, выполните следующую команду:

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

Install tools

Прежде чем продолжить выполнение задач в этой статье, необходимо установить следующее:

В примерах в этой статье используются угловые скобки < ... > для определения значений, которые необходимо заменить перед запуском скрипта. Замените квадратные скобки и значения внутри квадратных скобок.

Между версией расширения arcdata и версией образа существует связь. Check that you have the correct arcdata extension version that corresponds to the image version you want to upgrade to in the Version log.

Просмотр доступных образов и выбор версии

Извлеките список доступных образов для контроллера данных с помощью следующей команды:

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

Обновление контроллера данных

В этом разделе показано, как обновить косвенно подключенный контроллер данных.

Note

Некоторые уровни и режимы служб данных обычно доступны, а некоторые — в предварительной версии. При установке общедоступных и предварительных версий служб на одном контроллере данных невозможно выполнить обновление. Чтобы выполнить обновление, удалите все экземпляры базы данных, которые не являются общедоступными. You can find the list of generally available and preview services in the Release Notes.

Поддерживаемые пути обновления см. в статье Об обновлении служб данных с поддержкой Azure Arc.

Upgrade

Перед началом обновления контроллера данных Azure Arc необходимо подключиться и пройти проверку подлинности в кластере Kubernetes и выбрать существующий контекст Kubernetes.

Сначала вы можете выполнить тестовый запуск. Сухой запуск проверяет наличие реестра, схему версии и маркер авторизации частного репозитория (если используется). Чтобы выполнить сухой запуск, используйте --dry-run параметр в команде az arcdata dc upgrade . For example:

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

Example:

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

Troubleshooting

Если для требуемой версии задана конкретная версия, задача настройки попытается обновиться до этой версии, пока успешное обновление не будет достигнуто. Если обновление выполнено успешно, RunningVersion свойство спецификации обновляется до новой версии. Обновление может завершиться ошибкой в таких сценариях, как неправильный тег образа, невозможность подключиться к реестру или репозиторию, недостаточное выделение ЦПУ или памяти для контейнеров, или недостаточно хранилища.

  1. Выполните следующую команду, чтобы узнать, отображается Error ли любое из модулей pod состояние или имеется большое количество перезапусков:

    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>
    

To view common errors and how to troubleshoot them go to Troubleshooting resources.