Обновление компонентов ambient mode
На этой странице описано, как обновить плоскость управления Istio, плагин Istio CNI и прокси ZTunnel в режиме ambient mode. Все три компонента используют стратегию обновления InPlace и должны обновляться именно в этом порядке. Прокси waypoint автоматически разворачиваются после обновления плоскости управления; см. Обновление прокси waypoint для соответствующих шагов проверки.
Содержание
Установка ambient mode с определенной версиейПроцедураОбновление компонентовПредварительные требованияОбновление плоскости управления IstioОбновление плагина Istio CNIОбновление прокси ZTunnelПроверка рабочих нагрузок ambientУдаление ресурсов обновления из среды разработкиУстановка ambient mode с определенной версией
Вы можете установить плоскость управления Istio, плагин Istio CNI и прокси ZTunnel в режиме ambient mode с явно закрепленной версией, что позволяет затем выполнить процедуру обновления.
Этот раздел нужен, чтобы вы могли пройти процесс обновления, начиная с известной исходной версии. Пропустите его, если кластер уже работает с Istio в режиме ambient mode. Шаги установки повторяют Установку ambient mode Istio, за исключением того, что для каждого ресурса spec.version закрепляется за более ранним выпуском.
Процедура
-
Создайте пространства имен
istio-cni,istio-systemиztunnel, добавив для каждого меткуistio-discovery=enabled, чтобы плоскость управления могла обнаружить их: -
Создайте ресурс
IstioCNIс исходной версией:- Закрепление
spec.versionопределяет версию, с которой начинается процедура обновления. - Параметр
reconcileIptablesOnStartupпозволяет агенту CNI обнаруживать и исправлять несовместимые правила iptables в уже запущенных pod'ах ambient после перезапуска агента — именно такую ситуацию и создает обновление.
- Закрепление
-
Дождитесь, пока pod'ы Istio CNI перейдут в состояние готовности:
-
Создайте ресурс
Istioс той же исходной версией:InPlace— стратегия по умолчанию, поэтому это поле необязательно; здесь оно показано для явного указания стратегии. В режиме ambient mode другие стратегии не поддерживаются.
-
Дождитесь, пока плоскость управления Istio перейдет в состояние готовности:
-
Создайте ресурс
ZTunnelс той же исходной версией:- В отличие от руководства по установке, в этом примере
spec.versionзадан, чтобы на этапе обновления ZTunnel ниже был более старый вариант, с которого можно перейти.
- В отличие от руководства по установке, в этом примере
-
Дождитесь, пока pod'ы ZTunnel перейдут в состояние готовности:
-
Настройте рабочие нагрузки приложений в кластере. Например, вы можете развернуть образец приложения Bookinfo в пространстве имен
bookinfo. Следующие шаги представляют собой сокращенную версию Развертывания приложения Bookinfo в режиме ambient mode.a. Создайте пространство имен
bookinfoи добавьте меткуistio-discovery=enabled, чтобы плоскость управления могла обнаружить его:b. Разверните приложение Bookinfo:
c. Разверните сервисы приложения Bookinfo для каждой версии:
d. Подключите все рабочие нагрузки пространства имен к ambient mesh:
Обновление компонентов
Предварительные требования
- Вы вошли в веб-консоль Alauda Container Platform как cluster-admin.
- Вы установили плагин Alauda Container Platform Networking for Multus, а версия kube-ovn должна быть v4.1.5 или более поздней.
- Вы обновили Alauda Service Mesh Operator до версии 2.1.2 или более поздней, и в Operator доступна новая целевая версия. Дополнительные сведения см. в разделе Понимание обновлений и каналов Operator.
- Istio развернут в режиме ambient mode. В этом примере ресурсы
Istio,IstioCNIиZTunnelназываютсяdefault. - На локальном компьютере установлен
istioctl. - Рабочие нагрузки приложений подключены к ambient mesh. В этом примере приложение Bookinfo работает в пространстве имен
bookinfo; см. Развертывание приложения Bookinfo в режиме ambient mode.
Обновление плоскости управления Istio
-
Измените версию в ресурсе
Istio. Например, чтобы обновиться до Istio1.28.6, задайте для поляspec.versionзначениеv1.28.6, выполнив следующую команду:Operator заменяет запущенную плоскость управления новой версией. ZTunnel и любые прокси waypoint автоматически переподключаются к новому экземпляру istiod; pod'ы приложений продолжают работать и не требуют перезапуска.
-
Дождитесь, пока плоскость управления перейдет в состояние готовности:
-
Убедитесь, что плоскость управления сообщает о новой версии:
Пример вывода
Обновление плагина Istio CNI
Обновляйте плагин Istio CNI только после завершения обновления плоскости управления, поскольку плагин CNI версии 1.x поддерживает плоскость управления версии 1.x или 1.x+1.
-
Установите для поля
spec.versionресурсаIstioCNIту же версию, что и у плоскости управления: -
Наблюдайте за развертыванием DaemonSet
istio-cni-node: -
Дождитесь, пока ресурс
IstioCNIсообщит о готовности: -
Убедитесь, что плагин CNI сообщает о новой версии:
Пример вывода
Подробные сведения о ресурсе IstioCNI и его поведении при обновлении см. в разделе Процесс обновления Istio CNI.
Обновление прокси ZTunnel
Обновляйте прокси ZTunnel последним, после того как и плоскость управления, и плагин CNI начнут работать в новой версии.
Замена pod'а ZTunnel может сбросить долгоживущие TCP-соединения на этом узле. Если ваши рабочие нагрузки используют долгоживущие соединения, перед этим шагом ознакомьтесь с разделом Процесс обновления ZTunnel и выберите подходящий способ снижения риска.
-
Установите для поля
spec.versionресурсаZTunnelту же версию, что и у плоскости управления: -
Наблюдайте за развертыванием DaemonSet ZTunnel:
NOTEDaemonSet заменяет pod'ы ZTunnel по одному узлу за раз, чтобы сохранить доступность сетевой связности mesh, поэтому на больших кластерах развертывание может занять несколько минут.
-
Дождитесь, пока ресурс
ZTunnelсообщит о готовности: -
Убедитесь, что прокси ZTunnel сообщает о новой версии:
Пример вывода
-
Проверьте pod'ы ZTunnel по узлам:
Пример вывода
Проверка рабочих нагрузок ambient
После того как все компоненты начнут работать в новой версии, убедитесь, что рабочие нагрузки по-прежнему участвуют в mesh.
-
Проверьте, что pod'ы приложения запущены:
Пример вывода
-
Убедитесь, что ZTunnel по-прежнему проксирует рабочие нагрузки. Pod'ы, подключенные к ambient mesh, сообщают протокол
HBONE:Пример вывода
-
Проверьте связность через mesh, вызвав сервис из другого pod'а:
Пример вывода
Если вы развернули прокси waypoint, дополнительно проверьте их, как описано в разделе Обновление прокси waypoint.
Удаление ресурсов обновления из среды разработки
После завершения проверки процедуры обновления в среде разработки удалите образец приложения и компоненты mesh, чтобы освободить ресурсы: