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


Обновление контроллера данных Azure Arc, подключенного напрямую, используя интерфейс командной строки

В этой статье описывается обновление контроллера данных с поддержкой 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.

Authenticate

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

kubectl config use-context <Kubernetes cluster name>

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

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

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]

Example:

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

Troubleshooting

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

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

    kubectl get pods --namespace <namespace>
    
  2. Чтобы просмотреть события, чтобы узнать, есть ли ошибка, выполните команду

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Чтобы получить список контейнеров в подах, запустите

    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.