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.26.3, установите поле spec.version вv1.26.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 секунд.
Вы можете увеличить период ожидания, чтобы обеспечить достаточное время для тестирования новой управляющей плоскости перед удалением предыдущей ревизии. Установите большее значение при канареечном обновлении, чтобы гарантировать стабильность рабочих нагрузок перед полным переходом.