Вы можете установить управляющую плоскость 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
.
Создайте пространство имён bookinfo
следующей командой:
Примените метку к пространству имён bookinfo
для активации автоматической инъекции sidecar. Используйте следующую команду:
Разверните поды приложения bookinfo
в пространстве имён bookinfo
, выполнив команду:
Проверьте ресурс Istio
, выполнив следующую команду:
Пример вывода
Поле IN USE
показывает 1
после развертывания приложения.
Убедитесь, что версия прокси совпадает с версией управляющей плоскости, выполнив следующую команду:
Столбец VERSION
должен соответствовать версии управляющей плоскости.
Пример вывода
При обновлении Istio с использованием стратегии RevisionBased
вы можете обновлять более чем на одну минорную версию за раз. Оператор Alauda Service Mesh v2 создаёт новый ресурс IstioRevision
для каждого изменения поля .spec.version
и разворачивает соответствующий экземпляр управляющей плоскости. Чтобы мигрировать рабочие нагрузки на новую управляющую плоскость, установите метку istio.io/rev
в пространстве имён, чтобы она совпадала с именем ресурса IstioRevision
, а затем перезапустите рабочие нагрузки.
istioctl
на локальной машине.RevisionBased
. В этом примере ресурс Istio
с именем default
развернут в пространстве имён istio-system
.IstioCNI
с именем default
развернут в пространстве имён istio-cni
.bookinfo
для включения инъекции sidecar.bookinfo
.Измените версию в ресурсе Istio
. Например, чтобы обновиться до Istio 1.26.3
, установите поле spec.version в v1.26.3
, выполнив следующую команду:
Обновление версии в CR Istio
Оператор Service Mesh v2 развернёт новую версию управляющей плоскости рядом со старой. Sidecar останутся подключёнными к старой управляющей плоскости.
Убедитесь, что ресурсы Istio
и IstioRevision
готовы с новой ревизией.
Проверьте готовность ресурса Istio
, выполнив команду:
Пример вывода
Проверьте готовность ресурса IstioRevision
, выполнив команду:
Пример вывода
Убедитесь, что запущено два пода управляющей плоскости, по одному на каждую ревизию, выполнив команду:
Пример вывода
Убедитесь, что sidecar рабочих нагрузок всё ещё подключены к предыдущей управляющей плоскости, выполнив команду:
Пример вывода
Столбец VERSION
должен соответствовать версии старой управляющей плоскости.
Переместите рабочие нагрузки на новую управляющую плоскость, обновив метку istio.io/rev
в пространстве имён приложения или в подах на имя новой ревизии. Например, обновите метку для всего пространства имён, выполнив команду:
Перезапустите рабочие нагрузки приложения, чтобы была внедрена новая версия sidecar, выполнив команду:
Проверьте, что запущена новая версия sidecar, выполнив команду:
Столбец VERSION
должен соответствовать новой версии управляющей плоскости.
Убедитесь, что старая управляющая плоскость, а также ресурсы Istio
и IstioRevision
были удалены.
Istio
удалён, выполнив команду:
IstioRevision
удалён, выполнив команду:
Оператор Alauda Service Mesh v2 удаляет старый ресурс IstioRevision
и связанную управляющую плоскость после истечения периода ожидания, определённого в поле spec.updateStrategy.inactiveRevisionDeletionGracePeriodSeconds
. Значение периода ожидания по умолчанию — 30
секунд.
Вы можете увеличить период ожидания, чтобы выделить достаточно времени для тестирования новой управляющей плоскости перед удалением предыдущей ревизии. Установите большее значение при канареечных обновлениях, чтобы обеспечить стабильность рабочих нагрузок перед полным переходом.