Стратегия обновления InPlace
запускает только одну ревизию контрольной плоскости за раз. Во время обновления все рабочие нагрузки сразу подключаются к новой версии контрольной плоскости. Чтобы сохранить совместимость между сайдкарами и контрольной плоскостью, можно обновлять только одну минорную версию за раз.
Стратегия InPlace
обновляет и перезапускает существующую контрольную плоскость Istio на месте. В процессе обновления существует только один экземпляр контрольной плоскости, что исключает необходимость перемещения рабочих нагрузок на новый экземпляр контрольной плоскости. Для завершения обновления перезапустите рабочие нагрузки приложения и шлюзы, чтобы обновить прокси Envoy.
Хотя стратегия InPlace
обеспечивает простоту и эффективность, существует небольшая вероятность прерывания трафика приложения, если под рабочей нагрузки обновляется, перезапускается или масштабируется во время перезапуска контрольной плоскости. Вы можете снизить этот риск, запуская несколько реплик контрольной плоскости Istio (istiod).
Чтобы выбрать стратегию InPlace
, установите значение spec.updateStrategy.type
в ресурсе Istio в InPlace
.
Пример спецификации для выбора стратегии обновления InPlace
Вы можете задать это значение при создании ресурса или изменить его позже. Если вы редактируете ресурс после создания, внесите изменение до обновления контрольной плоскости Istio.
Вы можете установить контрольную плоскость Istio, Istio CNI и демонстрационное приложение Bookinfo, используя стратегию обновления InPlace
.
Следующий раздел поможет понять процесс обновления. Вы можете пропустить эту установку, если в кластере уже развернута Istio.
Создайте пространства имён istio-cni
и istio-system,
выполнив следующие команды:
Подключите рабочие нагрузки к контрольной плоскости, развернутой с использованием стратегии InPlace
:
Пометьте пространство имён для автоматического включения всех рабочих нагрузок, выполнив команду:
Примените метку ревизии к отдельным рабочим нагрузкам, изменив шаблон пода в ресурсе Deployment
. Например:
Если имя ревизии — default
, подключите рабочие нагрузки к ревизии, выполнив команду. В следующем примере пространство имён помечается меткой istio-injection: enabled
.
Установите плагин Istio CNI нужной версии. В следующем примере создаётся ресурс IstioCNI
с именем default в пространстве имён istio-cni
:
Разверните контрольную плоскость Istio с использованием стратегии обновления InPlace
. В следующем примере создаётся ресурс Istio
с именем default
в пространстве имён istio-system
:
Пример конфигурации
Настройте рабочие нагрузки приложения для запуска в кластере. Например, вы можете развернуть демонстрационное приложение bookinfo
в пространстве имён bookinfo
.
Создайте пространство имён bookinfo
командой:
Примените метку к пространству имён bookinfo
для активации автоматической инъекции сайдкара. Используйте команду:
Разверните поды приложения bookinfo
в пространстве имён bookinfo
, выполнив команду:
Проверьте ресурс Istio
с помощью команды:
Пример вывода
Значение 1
в столбце IN USE
означает, что ресурс IstioRevision
используется как меткой на пространстве имён, так и внедрёнными прокси сайдкаров.
При обновлении Istio с использованием стратегии InPlace
можно увеличивать версию только на одну минорную версию за раз. Чтобы обновиться более чем на одну минорную версию, необходимо увеличивать версию и перезапускать рабочие нагрузки после каждого обновления. Перезапуск рабочих нагрузок гарантирует совместимость между версиями сайдкара и контрольной плоскости. Процесс обновления завершается после перезапуска всех рабочих нагрузок.
istioctl
.InPlace
. В этом примере ресурс Istio
с именем default
развернут в пространстве имён istio-system
.IstioCNI
с именем default
развернут в пространстве имён istio-cni
.bookinfo
помечено для включения инъекции сайдкара.bookinfo
.Измените версию в ресурсе Istio
. Например, чтобы обновиться до Istio 1.26.3
, установите поле spec.version в v1.26.3
, выполнив команду:
Обновление версии в CR Istio
Оператор Service Mesh v2 развернёт новую версию контрольной плоскости, которая заменит старую. Сайдкары автоматически переподключатся к новой контрольной плоскости.
Убедитесь, что новая версия контрольной плоскости готова, выполнив команду:
Пример вывода
Перезапустите рабочие нагрузки приложения, чтобы внедрить новую версию сайдкара, выполнив команду:
Проверьте, что новая версия сайдкара запущена, выполнив команду:
Пример вывода
Столбец VERSION
должен соответствовать новой версии контрольной плоскости.