Стратегии основанные на функциях маршрутизатора
Стратегии, использующие функции маршрутизатора влияют на отдельные маршруты:
Стратегия развертывания A/B
Применение стратегии A/B рекомендовано, если необходимо предоставить доступ к новой версии приложения ограниченному количеству пользователей.
Чтобы развернуть приложение по стратегии A/B:
Создайте два приложения и дайте им разные имена. Приложения являются версиями одной и той же программы — одна обычно является текущей производственной версией, а другая — предлагаемой новой версией:
oc new-app openshift/deployment-example --name=ab-example-a oc new-app openshift/deployment-example --name=ab-example-b
Сделать приложение доступным извне по маршруту:
oc expose svc / ab-example-a
Перейдите к приложению по адресу
ab-example-<project>.<router_domain>
чтобы убедиться, что установлена нужная версия.При необходимости внесите изменения в маршрут. Для этого используйте команду:
oc edit route <route_name> ... metadata: name: route-alternate-service annotations: haproxy.router.openshift.io/balance: roundrobin spec: host: ab-example.my-project.my-domain to: kind: Service name: ab-example-a weight: 10 alternateBackends: - kind: Service name: ab-example-b weight: 15 ...
Стратегия развертывания blue-green
С помощью стратегии blue-green можно реализовать одновременный запуск двух версий приложения и перенос трафика из рабочей версии приложения (зеленая версия) в новую версию приложения (синюю версию).
Этот тип стратегии рекомендовано использовать, если необходимо развернуть новую версию (синяя версия) приложения для тестирования и оценки при условии, что пользователи смогут использовать стабильную версию (зеленая версия). Стратегия blue-gree использует два экземпляра Deployment Config одновременно.
Чтобы развернуть приложение по стратегии blue-green:
Создайте 2 экземпляра приложения:
oc new-app openshift/deployment-example:v1 --name=example-green oc new-app openshift/deployment-example:v2 --name=example-blue
Создайте маршрут, который указывает на рабочую версию приложения:
oc expose svc / example-green --name = bluegreen-example
Откройте приложение в браузере
example-green.<project>.<router_domain>
, чтобы убедиться в наличии образа v1.Отредактируйте маршрут и измените название службы на example-blue:
oc patch route/bluegreen-example -p '{"spec":{"to":{"name":"example-blue"}}}'
Чтобы убедиться, что маршрут изменился, обновите страницу до появления образа v2.
См.также
Подробнее о стратегии blue-green здесь.