Обновление

Содержание

Установка последнего плагина Global Alauda Service Mesh Essentials Cluster

Пожалуйста, посетите Alauda Service Mesh Essentials для инструкций по установке.

Обновление компонентов бизнес-кластера

Перед обновлением

Платформа предоставляет канареечное обновление Istio в сервисной сетке, при котором сначала разворачивается новая версия компонента istiod. После обновления всех data plane старую версию компонента istiod выводят из эксплуатации.

Учитывая сильную зависимость между версиями Istio и Kubernetes, убедитесь, что текущая версия Kubernetes в кластере соответствует требованиям для обновления Istio, чтобы успешно завершить канареечное обновление.

В таблице ниже показаны поддерживаемые пути обновления Istio для текущей версии платформы и требуемые версии Kubernetes для этих путей.

Поддерживаемые пути обновления IstioТребования к версии Kubernetes
Istio с 1.20 до 1.22Версии Kubernetes 1.27, 1.28
Istio с 1.18 до 1.22Версия Kubernetes 1.27

Примечание:

  • В таблице описаны только основные версии Istio и Kubernetes; минорные версии не влияют на совместимость.
  • Вы можете проверить текущие версии Istio и Kubernetes в кластере, перейдя в список Components.
  • Если текущая версия Kubernetes в кластере ниже требуемой для обновления Istio, необходимо обновить Kubernetes до совместимой версии через Upgrade Components.
  • Для получения дополнительной информации обратитесь к Community's Supported Kubernetes Versions for Istio.

Процесс обновления

Полный процесс обновления сервисной сетки включает следующие шаги:

  1. Обновление не-Istio компонентов сервисной сетки в кластере, таких как asm operator, flagger operator и др.
  2. Развертывание новой версии istiod в кластере.
  3. Проверка наличия EnvoyFilters в кластере.
  4. Обновление всех data plane Istio в кластере.
  5. Вывод из эксплуатации старой версии istiod в кластере.

Операции по обновлению

Обновление не-Istio компонентов сервисной сетки в кластере

  1. В левом навигационном меню Platform Management нажмите Service Mesh > Meshes.
  2. Нажмите на Service Mesh Name, который необходимо обновить, чтобы перейти к деталям mesh.
  3. В области Mesh Deployment на странице деталей mesh отображается список кластеров, где развернута сервисная сетка. Нажмите на Cluster Name, чтобы открыть страницу деталей кластера в новой вкладке.
  4. Перейдите на вкладку Components на странице деталей кластера и нажмите обновить, чтобы обновить не-Istio компоненты сервисной сетки в кластере до последней версии. Для подробной документации по обновлению компонентов смотрите Upgrade Components.

Примечание: Не-Istio компоненты сервисной сетки включают asm, Flagger Operator, Asm Operator, Jaeger Operator.

Развертывание новой версии istiod

Примечание: Перед развертыванием новой версии istiod ознакомьтесь с разделом Перед обновлением, чтобы убедиться, что версия Kubernetes в кластере соответствует требованиям пути обновления.

  1. Вернитесь на страницу деталей mesh и в области Mesh Deployment нажмите кнопку Upgrade справа от Istio Version соответствующего кластера. В всплывающем окне отобразится путь обновления Istio.
  2. Нажмите кнопку Upgrade во всплывающем окне.

Проверка наличия EnvoyFilters в кластере

  1. В левом навигационном меню Platform Management нажмите Service Mesh > EnvoyFilter.

    Примечание: Если на платформе несколько сервисных сетей, вы можете переключить сервисную сетку на ту, в которой находится кластер, через верхнюю панель навигации.

  2. Проверьте наличие данных в списке EnvoyFilter.

    • Если данных нет, проверка завершена.
    • Если данные есть, свяжитесь с создателем EnvoyFilter для адаптации всех EnvoyFilters к новой версии Istio или обратитесь в техническую поддержку.

Обновление всех data plane Istio в кластере

Data plane Istio в кластере включает Sidecar, ingress gateway и egress gateway.

Метод 1: Обновление через интерактивный CLI

Интерактивный CLI позволяет пакетно обновить все Sidecar и шлюзы в кластере. Этот метод подходит пользователям, знакомым с командной строкой, особенно тем, кто хочет быстро обновить весь кластер.

kubectl -ncpaas-system exec -it deploy/asm-controller -- /app/asm-controller bfg rollout

Примечание: Также можно использовать параметр быстрого обновления без подтверждения.

kubectl -ncpaas-system exec -it deploy/asm-controller -- /app/asm-controller bfg rollout --no-prompt

Примечание: Процесс поэтапного обновления ingress и egress gateway включает удаление старых Pod и создание новых до тех пор, пока все Pod не будут обновлены до новой версии образа data plane. Поэтому, если у шлюза только один Pod, во время обновления шлюз будет недоступен.

Метод 2: Обновление через UI

Обновление через UI позволяет пакетно обновлять по разным namespace или указать отдельный сервис/шлюз для обновления. Этот метод подходит пользователям, предпочитающим визуальный интерфейс, особенно тем, кто нуждается в гибком выборе целей обновления.

Обновление ingress и egress gateway

  1. В левом навигационном меню нажмите Service Mesh > Gateways. Примечание: В списке шлюзов кластера иконка справа от Istio Version указывает, что прокси data plane шлюза можно обновить.
  2. Нажмите кнопку Upgrade справа от Istio Version и подтвердите действие.

Обновление Sidecar

  1. В левом навигационном меню Platform Management нажмите Service Mesh > Meshes.
  2. Нажмите на Service Mesh Name, в котором нужно обновить Sidecar, чтобы перейти к деталям mesh.
  3. В области Namespaces на странице деталей mesh отображается список namespace, управляемых сервисной сеткой. Нажмите на Namespace Name, чтобы открыть Service Mesh в новой вкладке и перейти в namespace, где расположен Sidecar. Примечание: Выполняйте обновление Sidecar для всех namespace последовательно.
  4. В левом навигационном меню нажмите Service List. Примечание: При появлении иконки рядом с Service Name это означает, что Sidecar сервиса можно обновить.
  5. Нажмите Batch Upgrade Sidecars. Примечание: Для обновления одного сервиса нажмите кнопку Upgrade справа от иконки в записи сервиса.
  6. Выберите все, один или несколько сервисов и нажмите Upgrade. Примечание: Платформа обновит Sidecar сервиса путем поэтапного обновления Pod с разными текущими и целевыми версиями Sidecar. Если обновление не удалось, проверьте события контейнерной группы в Container Platform для выяснения причины или попробуйте Re-upgrade.

Примечание: Sidecar обновляется через поэтапное обновление Deployment сервиса для завершения обновления образа data plane Pod. Поэтому, если у сервиса есть долгие соединения, во время поэтапного обновления Pod будет кратковременное прерывание сервиса.

Вывод из эксплуатации старой версии istiod в кластере

Старую версию istiod в кластере можно вывести из эксплуатации только после обновления всех data plane Istio в кластере.

Внимание:

  • Если старая версия istiod в кластере не выведена из эксплуатации, функции добавления кластера и конфигурации Sidecar сервисной сетки будут недоступны.
  • При наличии новой версии для обновления на платформе, если хотя бы в одном кластере не выведена из эксплуатации старая версия istiod, платформа не сможет обновиться.
  • В мультикластерной сервисной сетке старую версию istiod в кластерах можно выводить из эксплуатации последовательно после завершения обновления data plane во всех кластерах.

Шаги

  1. Вернитесь на страницу деталей mesh и в области Mesh Deployment нажмите кнопку Decommission Old Version справа от Istio Version соответствующего кластера. Откроется всплывающее окно Decommission Old Version.
  2. Нажмите кнопку Confirm во всплывающем окне.

Примечание: Если в кластере есть data plane, которые не обновлены, после нажатия Decommission Old Version во всплывающем окне отобразятся ingress gateway, egress gateway и Sidecar в кластере, которые не обновлены, что позволит быстро отследить data plane для обновления.