Обновление с использованием стратегии InPlace
Стратегия обновления InPlace запускает только одну ревизию контрольной плоскости за раз. Во время обновления все рабочие нагрузки сразу подключаются к новой версии контрольной плоскости. Чтобы сохранить совместимость между сайдкарами и контрольной плоскостью, можно обновлять только одну минорную версию за раз.
Стратегия InPlace обновляет и перезапускает существующую контрольную плоскость Istio на месте. В процессе обновления существует только один экземпляр контрольной плоскости, что исключает необходимость перемещения рабочих нагрузок на новый экземпляр контрольной плоскости. Для завершения обновления перезапустите рабочие нагрузки и шлюзы приложения, чтобы обновить прокси Envoy.
Хотя стратегия InPlace обеспечивает простоту и эффективность, существует небольшая вероятность прерывания трафика приложения, если под рабочей нагрузки обновляется, перезапускается или масштабируется во время перезапуска контрольной плоскости. Вы можете снизить этот риск, запуская несколько реплик контрольной плоскости Istio (istiod).
Содержание
Выбор стратегии InPlaceУстановка с использованием стратегии обновления InPlaceПроцедураОбновление контрольной плоскости Istio со стратегией InPlaceПредварительные условияПроцедураПроверкаУдаление ресурсов обновления InPlace из среды разработкиВыбор стратегии 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:Пример конфигурации
-
Дождитесь готовности контрольной плоскости Istio, выполнив команду:
-
Настройте выполнение рабочих нагрузок приложения в кластере. Например, вы можете развернуть пример приложения
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.28.3, установите поле spec.version вv1.28.3, выполнив команду:Обновление версии в CR Istio
Оператор Service Mesh v2 развернёт новую версию контрольной плоскости, которая заменит старую. Сайдкары автоматически переподключатся к новой контрольной плоскости.
-
Дождитесь готовности контрольной плоскости Istio, выполнив команду:
-
Убедитесь, что новая версия контрольной плоскости готова, выполнив команду:
Пример вывода
-
Перезапустите рабочие нагрузки приложения, чтобы была внедрена новая версия сайдкара, выполнив команду:
Проверка
Проверьте, что новая версия сайдкара запущена, выполнив команду:
Пример вывода
Столбец VERSION должен соответствовать новой версии контрольной плоскости.
Удаление ресурсов обновления InPlace из среды разработки
После завершения проверки и экспериментов рекомендуется удалить конфигурацию обновления InPlace для очистки среды разработки и освобождения ресурсов.
Процедура
Выполните следующие команды для удаления всех компонентов Istio и примерных приложений: