Контроль и проверка обновления#
На этой стадии проследите за обновлением компонентов и убедитесь в работоспособности платформы новой версии.
Примечание
Часть проверок относится к импорту контента Private Automation Hub.
Импорт выполняется, если в манифесте приложения заданы блоки offline_content_loader, ee_images и decision_environments, как при развертывании без доступа в интернет.
При онлайн-обновлении без этих блоков оператор не создает задание на импорт контента, а пространство имен aa-2.1 в реестре Private Automation Hub отсутствует; ожидаемые результаты для этого случая отмечены в проверках отдельно.
Наблюдение за обновлением#
После применения манифестов операторы обновляют платформу в рамках процесса Reconciliation:
Операторы компонентов переводят поды Automation Controller, Private Automation Hub и Event-Driven Automation на образы новой версии.
Оператор
aa-operatorпереводит на новую версию Platform Gateway и Redis, обновляет поля ресурсов компонентов значениями из манифеста приложения, развертывает Automation Dashboard и запускает импорт контента в Private Automation Hub, если импорт используется.При использовании импорта контента задание импорта загружает в реестр Private Automation Hub коллекции и образы сред исполнения новой версии.
Полное обновление занимает около 20 минут.
Следите за состоянием платформы и подов:
watch -n 5 'kubectl get aas aa-demo -n astra-automation -o jsonpath="{.status.conditions}" | jq .'
kubectl get pods -n astra-automation -w
Примечание
Во время обновления подов для Platform Gateway в условиях ресурса AstraAutomation может кратковременно появиться условие "type": "Failure" с сообщением, содержащим URLError.
Это ожидаемое поведение: оператор повторит процесс Reconciliation, и после запуска новых подов условие вернется в Successful.
Вмешательство необходимо, только если состояние Failure сохраняется дольше нескольких повторов.
Обновление Mesh Ingress#
Раздел применим к топологии уровня предприятия с внешними исполняющими узлами, подключенными через ресурс AutomationControllerMeshIngress.
Объект Deployment переходного узла (hop node) не переходит на новую версию автоматически, поскольку обновление платформы не изменяет ресурс AutomationControllerMeshIngress, и следовательно оператор не запускает для него процесс Reconciliation.
Перезапустите оператор ac-operator для выполнения Reconciliation по всем его ресурсам:
kubectl rollout restart deploy/ac-operator-ac-manager -n astra-automation
kubectl rollout status deploy/ac-operator-ac-manager -n astra-automation
Через одну-две минуты убедитесь, что объект Deployment переходного узла перешел на образ новой версии:
kubectl get deploy ac-demo-mesh-1 -n astra-automation -o jsonpath='{.spec.template.spec.containers[*].image}'
Ожидаемый результат: образ aa-control-ee с тегом 2.1.
Внешние исполняющие узлы переподключатся к переходному узлу автоматически; их состояние проверяется в ходе проверок после обновления.
Проверки после обновления#
Для проверки обновления выполните следующие действия:
Убедитесь, что условие
Successfulактивно, а в компонентах не осталось образов предыдущей версии:kubectl get aas aa-demo -n astra-automation -o jsonpath='{.status.conditions}' | jq . kubectl get deploy,sts -n astra-automation \ -o jsonpath='{range .items[*]}{.kind}{" "}{.metadata.name}{" => "}{range .spec.template.spec.containers[*]}{.name}{"="}{.image}{";"}{end}{"\n"}{end}' \ | grep -c "2.0-upd2"
Ожидаемый результат второй команды:
0.Убедитесь, что Platform Gateway отвечает и возвращает новую версию:
curl -sk https://<hostname>/api/gateway/v1/ping/
Здесь
<hostname>– доменное имя платформы.Ожидаемый результат:
{"version":"2.1","pong":"...","status":"good","db_connected":true,"proxy_connected":true}
Убедитесь, что задания миграции базы данных и импорта контента завершены:
kubectl get jobs -n astra-automation
Ожидаемый результат: задание миграции
ac-demo-migration-*в состоянии1/1; при использовании импорта контента – также заданиеpah-demo-importer-*в состоянии1/1.Примечание
Для обновления платформа создает новые задания, а задания предыдущей версии остаются в списке в состоянии
Complete. Это ожидаемое поведение; задания предыдущей версии можно удалить.Убедитесь, что компонент Automation Dashboard запущен и доступен:
kubectl get pods -n astra-automation | grep dashboard curl -sk -o /dev/null -w "%{http_code}\n" "https://<hostname>/dashboard/"
Ожидаемый результат: поды
dashboard-demo-*в состоянииRunning, код ответа200. Войдите в графическую консоль Automation Dashboard по адресуhttps://<hostname>/dashboard/с помощью технологии единого входа платформы. Платформа регистрируется в Automation Dashboard автоматически, а синхронизация статистики запускается по расписанию (по умолчанию каждые 5 минут). Подробные проверки компонента приведены в описании проверки установки Automation Dashboard.Убедитесь, что зарегистрированные среды исполнения указывают на образы новой версии (в графической консоли или через API):
curl -sk -H "Authorization: Bearer <token>" "https://<hostname>/api/controller/v2/execution_environments/"
Здесь
<token>– токен доступа к API с правами администратора.Ожидаемый результат: запись «Control Plane Execution Environment» указывает на образ
<hostname>/aa-2.1/aa-control-ee:latest– значение поляcontroller.control_plane_execution_environment; записи из спискаee_imagesпри использовании импорта контента указывают на образы из пространства именaa-2.1реестра Private Automation Hub. В онлайн-сценарии без блоков контента записи «Control Plane Execution Environment» и «Default execution environment» указывают на образыhub.astra-automation.ru/aa-2.1/aa-control-ee:latestиhub.astra-automation.ru/aa-2.1/aa-full-ee:latest. Служебные контейнеры плоскости управления при этом используют образregistry.astra.ru/aa/aa-control-ee:2.1; подробности приведены в описании проверки сред исполнения и принятия решений.Примечание
Записи сред исполнения предыдущей версии, не заданные в манифесте, например «AA Controller EE (latest)», остаются в списке с прежними образами. Это ожидаемое поведение; такие записи удаляются на стадии очистки.
Для топологии с внешними исполняющими узлами убедитесь, что все исполняющие узлы находятся в состоянии
ready(графическая консоль: или API/api/controller/v2/instances/).Выполните сквозную проверку: запустите шаблон задания
Demo Job Template. Под задания получает зарегистрированную среду исполнения новой версии (при использовании импорта контента – из реестра Private Automation Hub, пространство именaa-2.1) и завершается в состоянииSuccessful. Рекомендуется проверить запуск в контейнерной группе кластера и, при наличии, на внешнем исполняющем узле.Примечание
Первый запуск задания после обновления занимает больше времени: на узел загружается образ среды исполнения новой версии (около 2,5 ГБ).