Контроль и проверка обновления#

На этой стадии проследите за обновлением компонентов и убедитесь в работоспособности платформы новой версии.

Примечание

Часть проверок относится к импорту контента Private Automation Hub. Импорт выполняется, если в манифесте приложения заданы блоки offline_content_loader, ee_images и decision_environments, как при развертывании без доступа в интернет. При онлайн-обновлении без этих блоков оператор не создает задание на импорт контента, а пространство имен aa-2.1 в реестре Private Automation Hub отсутствует; ожидаемые результаты для этого случая отмечены в проверках отдельно.

Наблюдение за обновлением#

После применения манифестов операторы обновляют платформу в рамках процесса Reconciliation:

  1. Операторы компонентов переводят поды Automation Controller, Private Automation Hub и Event-Driven Automation на образы новой версии.

  2. Оператор aa-operator переводит на новую версию Platform Gateway и Redis, обновляет поля ресурсов компонентов значениями из манифеста приложения, развертывает Automation Dashboard и запускает импорт контента в Private Automation Hub, если импорт используется.

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

Проверки после обновления#

Для проверки обновления выполните следующие действия:

  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.

  2. Убедитесь, что Platform Gateway отвечает и возвращает новую версию:

    curl -sk https://<hostname>/api/gateway/v1/ping/
    

    Здесь <hostname> – доменное имя платформы.

    Ожидаемый результат:

    {"version":"2.1","pong":"...","status":"good","db_connected":true,"proxy_connected":true}
    
  3. Убедитесь, что задания миграции базы данных и импорта контента завершены:

    kubectl get jobs -n astra-automation
    

    Ожидаемый результат: задание миграции ac-demo-migration-* в состоянии 1/1; при использовании импорта контента – также задание pah-demo-importer-* в состоянии 1/1.

    Примечание

    Для обновления платформа создает новые задания, а задания предыдущей версии остаются в списке в состоянии Complete. Это ожидаемое поведение; задания предыдущей версии можно удалить.

  4. Убедитесь, что компонент 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.

  5. Убедитесь, что зарегистрированные среды исполнения указывают на образы новой версии (в графической консоли или через 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)», остаются в списке с прежними образами. Это ожидаемое поведение; такие записи удаляются на стадии очистки.

  6. Для топологии с внешними исполняющими узлами убедитесь, что все исполняющие узлы находятся в состоянии ready (графическая консоль: Infrastructure ‣ Instances или API /api/controller/v2/instances/).

  7. Выполните сквозную проверку: запустите шаблон задания Demo Job Template. Под задания получает зарегистрированную среду исполнения новой версии (при использовании импорта контента – из реестра Private Automation Hub, пространство имен aa-2.1) и завершается в состоянии Successful. Рекомендуется проверить запуск в контейнерной группе кластера и, при наличии, на внешнем исполняющем узле.

    Примечание

    Первый запуск задания после обновления занимает больше времени: на узел загружается образ среды исполнения новой версии (около 2,5 ГБ).