Обновление с использованием стратегии InPlace
Стратегия обновления InPlace запускает только одну ревизию контрольной плоскости за раз. Во время обновления все рабочие нагрузки сразу подключаются к новой версии контрольной плоскости. Чтобы поддерживать совместимость между сайдкарами и контрольной плоскостью, можно обновлять только одну минорную версию за раз.
Стратегия InPlace обновляет и перезапускает существующую контрольную плоскость Istio на месте. В процессе обновления существует только один экземпляр контрольной плоскости, что исключает необходимость перемещать рабочие нагрузки на новый экземпляр контрольной плоскости. Для завершения обновления перезапустите рабочие нагрузки приложений и шлюзы, чтобы обновить прокси Envoy.
Хотя стратегия InPlace обеспечивает простоту и эффективность, существует небольшая вероятность прерывания трафика приложения, если под рабочей нагрузки обновляется, перезапускается или масштабируется во время перезапуска контрольной плоскости. Вы можете снизить этот риск, запуская несколько реплик контрольной плоскости Istio (istiod).
Содержание
Выбор стратегии InPlace
Чтобы выбрать стратегию InPlace, установите значение spec.updateStrategy.type в ресурсе Istio в InPlace.
Пример спецификации для выбора стратегии обновления InPlace
Вы можете установить это значение при создании ресурса или изменить его позже. Если вы редактируете ресурс после создания, внесите изменение до обновления контрольной плоскости Istio.
Установка с использованием стратегии обновления InPlace
Вы можете установить контрольную плоскость 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.a. Создайте пространство имён
bookinfoкомандой:b. Примените метку к пространству имён
bookinfoдля активации автоматической инъекции сайдкара. Используйте команду:c. Разверните поды приложения
bookinfoв пространстве имёнbookinfo, выполнив команду: -
Проверьте ресурс
Istioс помощью команды:Пример вывода
Значение
1в столбцеIN USEозначает, что ресурсIstioRevisionссылается как на метку в пространстве имён, так и на внедрённые прокси сайдкара.
Обновление контрольной плоскости Istio со стратегией InPlace
При обновлении Istio с использованием стратегии InPlace вы можете увеличивать версию только на одну минорную версию за раз. Чтобы обновить более чем на одну минорную версию, необходимо увеличить версию и перезапустить рабочие нагрузки после каждого обновления. Перезапуск рабочих нагрузок гарантирует совместимость между версиями сайдкара и контрольной плоскости. Процесс обновления завершается после перезапуска всех рабочих нагрузок.
Предварительные условия
- Вы вошли в веб-консоль Alauda Container Platform как cluster-admin.
- Установлен плагин Alauda Container Platform Networking для Multus, kube-ovn должен быть версии v4.1.5 или новее.
- Установлен оператор Alauda Service Mesh v2 и развернут Istio.
- На локальной машине установлен
istioctl. - Контрольная плоскость Istio настроена на использование стратегии обновления
InPlace. В этом примере ресурсIstioс именемdefaultразвернут в пространстве имёнistio-system. - Установлен плагин Istio CNI нужной версии. В этом примере ресурс
IstioCNIс именемdefaultразвернут в пространстве имёнistio-cni. - Пространство имён
bookinfoпомечено для включения инъекции сайдкара. - В кластере запущены рабочие нагрузки приложений. В этом примере приложение bookinfo развернуто в пространстве имён
bookinfo.
Процедура
-
Измените версию в ресурсе
Istio. Например, чтобы обновиться до Istio1.26.3, установите поле spec.version вv1.26.3, выполнив команду:Обновление версии в CR Istio
Оператор Service Mesh v2 развернёт новую версию контрольной плоскости, которая заменит старую. Сайдкары автоматически переподключатся к новой контрольной плоскости.
-
Убедитесь, что новая версия контрольной плоскости готова, выполнив команду:
Пример вывода
-
Перезапустите рабочие нагрузки приложений, чтобы новая версия сайдкара была внедрена, выполнив команду:
Проверка
Проверьте, что новая версия сайдкара запущена, выполнив команду:
Пример вывода
Столбец VERSION должен соответствовать новой версии контрольной плоскости.