ПР. Обновление приложения

Кратко:

  • Обновление приложений на виртуальных машинах происходит по тем же правилам, что и обновление ОС.
  • Первый вариант обновления: изменить шаблон ВМ и выбрать образ с Ubuntu 22.04, параметры политики развертывания: группу нельзя расширять, уменьшать только на одну ВМ.
  • Второй вариант обновления: изменить параметры развертывания, выбрать образ с Ubuntu и NGINX, создать новую машину, открыть трафик, вывести из строя устаревшие ВМ.

Практическая работа. Обновление приложения

В практической работе с CLI вы уже научились обновлять операционную систему для группы виртуальных машин. Любые приложения, установленные на ВМ, обновляются по тем же правилам. Давайте рассмотрим этот процесс ещё раз.

Первый вариант обновления

  1. Если вы работаете в консоли управления, измените шаблон ВМ и выберите образ с ОС Ubuntu 22.04. Убедитесь, что параметры политики развертывания такие: группу нельзя расширять, а уменьшать можно только на одну ВМ.
image
Политика развёртывания группы виртуальных машин (вариант 1)
Если вы работаете в командной строке, в спецификации specification.yaml измените параметр image_id (например с fd8s2gbn4d5k2rcf12d9 на fd8l45jhe4nvt0ih7h2e) и запустите обновление группы:
yc compute instance-group update \
  --id <instance_group_id> \
  --file <путь_к_файлу_specification.yaml>
  1. В консоли управления на странице группы ВМ перейдите на вкладку Список ВМ и проследите, как меняются статусы машин.
  2. Сначала вы увидите статус Running outdated. Это означает, что машины работают со старой версией приложения.
  3. Затем одна из машин начинает обновляться: для неё закрывается трафик (статус Closing traffic), она останавливается (статус Stopping instance), обновляется (статус Updating instance), затем трафик снова открывается (статус Opening traffic), и наконец статус меняется на Running actual. Обновление выполнено.
  4. Затем то же самое последовательно выполняется для остальных машин в группе.
Порядок обновления зависит от политики развёртывания. Мы запретили увеличивать размер группы и указали, что одновременно неработоспособной может быть только одна машина. Именно так и произошло обновление: машины по одной выводились из строя, обновлялись и запускались снова.

Второй вариант обновления

  1. Теперь давайте изменим настройки политики развёртывания.
Если вы работаете в консоли управления, измените шаблон ВМ и выберите образ с Ubuntu и NGINX, созданный ранее и помещённый в Container Registry.
Измените параметры развёртывания. Теперь группу можно расширять на одну ВМ, а уменьшать нельзя:
image
Политика развёртывания группы виртуальных машин (вариант 2)
Если вы работаете в командной строке, в спецификации specification.yaml измените параметр image_id (например, снова с fd8ju9iqf6g5bcq77jns на fd8s2gbn4d5k2rcf12d9). Параметры обновления измените так:
deploy_policy:
    max_unavailable: 0
    max_expansion: 1
Запустите обновление группы.
  1. В консоли управления на странице группы ВМ перейдите на вкладку Список ВМ и проследите, как меняются статусы машин.
  2. Сначала вы увидите статус Running outdated. Затем создаётся новая машина (статус Creating instance), для неё открывается трафик (статус Opening traffic), статус машины меняется на Running actual, при этом одна из «устаревших» ВМ выводится из строя (статусы Closing traffic и Stopping instance).
  3. Затем то же самое последовательно выполняется для остальных машин в группе.