Обновление контроллера данных Azure Arc напрямую с помощью интерфейса командной строки
В этой статье описывается обновление контроллера данных с поддержкой 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
Установка инструментов
Прежде чем продолжить выполнение задач в этой статье, необходимо установить следующее:
- Azure CLI (
az
) - Расширение
arcdata
для Azure CLI
В примерах в этой статье используются угловые скобки < ... >
для определения значений, которые необходимо заменить перед запуском скрипта. Замените квадратные скобки и значения внутри квадратных скобок.
Связана 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.
kubectl config use-context <Kubernetes cluster name>
Обновление контроллера данных
Сначала можно выполнить сухой запуск. Сухой запуск проверяет наличие реестра, схему версии и маркер авторизации частного репозитория (если используется). Чтобы выполнить сухой запуск, используйте --dry-run
параметр в команде az arcdata dc upgrade
. Например:
az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> --dry-run [--no-wait]
Выходные данные для предыдущей команды:
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>
После обновления расширения контроллера данных Arc выполните az arcdata dc upgrade
команду, указав тег изображения с --desired-version
помощью .
az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> [--no-wait]
Пример:
az arcdata dc upgrade --resource-group rg-arcds --name dc01 --desired-version v1.7.0_2022-05-24 [--no-wait]
Мониторинг состояния обновления
Ход обновления можно отслеживать с помощью CLI.
CLI
az arcdata dc status show --resource-group <resource group>
Обновление — это двухпартийный процесс. Сначала контроллер обновляется, а затем обновляется стек мониторинга. После завершения обновления выходные данные будут:
Ready
Устранение неполадок
Если для требуемой версии задана определенная версия, задание начального загрузчика попытается обновить до этой версии, пока она не завершится успешно. Если обновление выполнено успешно, RunningVersion
свойство спецификации обновляется до новой версии. Обновление может завершиться ошибкой для таких сценариев, как неправильный тег образа, не удается подключиться к реестру или репозиторию, недостаточно ЦП или памяти, выделенной контейнерам, или недостаточно хранилища.
Выполните следующую команду, чтобы узнать, отображается
Error
ли любое из модулей pod состояние или имеется большое количество перезапусков:kubectl get pods --namespace <namespace>
Чтобы просмотреть события, чтобы узнать, есть ли ошибка, выполните команду
kubectl describe pod <pod name> --namespace <namespace>
Чтобы получить список контейнеров в модулях pod, выполните команду
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
Чтобы получить журналы для контейнера, выполните команду
kubectl logs <pod name> <container name> --namespace <namespace>
Чтобы просмотреть распространенные ошибки и способы их устранения, перейдите к ресурсам по устранению неполадок.