Istio со стратегией RevisionBased
Содержание
Установка Istio со стратегией RevisionBasedПроцедураОбновление управляющей плоскости Istio со стратегией RevisionBasedПредварительные условияПроцедураПроверкаУстановка Istio со стратегией RevisionBased
Вы можете установить управляющую плоскость Istio, Istio CNI и демонстрационное приложение Bookinfo, используя стратегию обновления RevisionBased.
Вы можете использовать следующий раздел для понимания процесса обновления. Если в кластере уже развернут Istio, установку можно пропустить.
Процедура
-
Создайте пространства имён
istio-cniиistio-system, выполнив следующую команду: -
Установите плагин Istio CNI нужной версии. В следующем примере конфигурации создаётся ресурс
IstioCNIс именем default в пространстве имёнistio-cni: -
Разверните управляющую плоскость Istio, используя стратегию обновления
RevisionBased. В следующем примере конфигурации создаётся ресурсIstioс именемdefaultв пространстве имёнistio-system:Пример конфигурации
-
Получите имя
IstioRevision, выполнив следующую команду:Пример вывода
Имя
IstioRevisionимеет формат<istio_resource_name>-<version>. -
Настройте рабочие нагрузки приложения для запуска в кластере. Например, вы можете развернуть пример приложения
bookinfoв пространстве имёнbookinfo.a. Создайте пространство имён
bookinfoкомандой:b. Примените метку к пространству имён
bookinfoдля активации автоматической инъекции sidecar. Используйте следующую команду:c. Разверните поды приложения
bookinfoв пространстве имёнbookinfo, выполнив команду: -
Проверьте ресурс
Istioс помощью следующей команды:Пример вывода
Поле
IN USEпоказывает1после развертывания приложения. -
Убедитесь, что версия прокси совпадает с версией управляющей плоскости, выполнив следующую команду:
Столбец
VERSIONдолжен совпадать с версией управляющей плоскости.Пример вывода
Обновление управляющей плоскости Istio со стратегией RevisionBased
При обновлении Istio с использованием стратегии RevisionBased можно обновлять сразу на несколько минорных версий. Оператор Alauda Service Mesh v2 создаёт новый ресурс IstioRevision для каждого изменения поля .spec.version и разворачивает соответствующий экземпляр управляющей плоскости. Чтобы мигрировать рабочие нагрузки на новую управляющую плоскость, установите метку istio.io/rev в пространстве имён, соответствующую имени ресурса IstioRevision, а затем перезапустите рабочие нагрузки.
Предварительные условия
- Вы вошли в веб-консоль Alauda Container Platform с правами cluster-admin.
- Вы установили оператор Alauda Service Mesh v2 и развернули Istio.
- Вы установили плагин Alauda Container Platform Networking для Multus, а kube-ovn должен быть версии v4.1.5 или выше.
- Вы установили
istioctlна локальной машине. - Вы настроили управляющую плоскость Istio на использование стратегии обновления
RevisionBased. В этом примере ресурсIstioс именемdefaultразвернут в пространстве имёнistio-system. - Вы установили плагин Istio CNI нужной версии. В этом примере ресурс
IstioCNIс именемdefaultразвернут в пространстве имёнistio-cni. - Вы пометили пространство имён
bookinfoдля включения инъекции sidecar. - В кластере запущены рабочие нагрузки приложения. В этом примере приложение bookinfo развернуто в пространстве имён
bookinfo.
Процедура
-
Измените версию в ресурсе
Istio. Например, чтобы обновиться до Istio1.28.3, установите поле spec.version вv1.28.3, выполнив команду:Обновление версии в CR Istio
Оператор Service Mesh v2 развернёт новую версию управляющей плоскости рядом со старой версией. Sidecar останутся подключёнными к старой управляющей плоскости.
-
Убедитесь, что ресурсы
IstioиIstioRevisionготовы с новой ревизией.a. Проверьте готовность ресурса
Istio, выполнив команду:Пример вывода
b. Проверьте готовность ресурса
IstioRevision, выполнив команду:Пример вывода
-
Убедитесь, что запущено два пода управляющей плоскости, по одному для каждой ревизии, выполнив команду:
Пример вывода
-
Убедитесь, что sidecar рабочих нагрузок всё ещё подключены к предыдущей управляющей плоскости, выполнив команду:
Пример вывода
Столбец
VERSIONдолжен совпадать со старой версией управляющей плоскости. -
Переместите рабочие нагрузки на новую управляющую плоскость, обновив метку
istio.io/revв пространстве имён приложения или на подах на имя новой ревизии. Например, обновите метку для всего пространства имён командой: -
Перезапустите рабочие нагрузки приложения, чтобы была внедрена новая версия sidecar, выполнив команду:
Проверка
-
Проверьте, что запущена новая версия sidecar, выполнив команду:
Столбец
VERSIONдолжен совпадать с версией новой управляющей плоскости. -
Убедитесь, что старая управляющая плоскость, а также ресурсы
IstioиIstioRevisionудалены.a. Проверьте, что старая управляющая плоскость удалена, выполнив команду:
b. Проверьте, что ресурс
Istioудалён, выполнив команду:c. Проверьте, что ресурс
IstioRevisionудалён, выполнив команду:
Оператор Alauda Service Mesh v2 удаляет старый ресурс IstioRevision и связанную управляющую плоскость после истечения льготного периода, определённого в поле spec.updateStrategy.inactiveRevisionDeletionGracePeriodSeconds. Значение льготного периода по умолчанию — 30 секунд.
Вы можете увеличить льготный период, чтобы обеспечить достаточное время для тестирования новой управляющей плоскости перед удалением предыдущей ревизии. Установите большее значение при канареечном обновлении, чтобы гарантировать стабильность рабочих нагрузок перед полным переходом.