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

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

Во время обновления контроллера данных могут обновляться части плоскости управления данными, такие как пользовательские определения ресурсов (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.

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

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 свойство спецификации обновляется до новой версии. Обновление может завершиться ошибкой для таких сценариев, как неправильный тег образа, не удается подключиться к реестру или репозиторию, недостаточно ЦП или памяти, выделенной контейнерам, или недостаточно хранилища.

  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>
    

Чтобы просмотреть распространенные ошибки и способы их устранения, перейдите к ресурсам по устранению неполадок.