Стратегии основанные на функциях маршрутизатора

Стратегии, использующие функции маршрутизатора влияют на отдельные маршруты:

Стратегия развертывания A/B

Применение стратегии A/B рекомендовано, если необходимо предоставить доступ к новой версии приложения ограниченному количеству пользователей.

Чтобы развернуть приложение по стратегии A/B:

  1. Создайте два приложения и дайте им разные имена. Приложения являются версиями одной и той же программы — одна обычно является текущей производственной версией, а другая — предлагаемой новой версией:

    oc new-app openshift/deployment-example --name=ab-example-a
    
    oc new-app openshift/deployment-example --name=ab-example-b
    
  2. Сделать приложение доступным извне по маршруту:

    oc expose svc / ab-example-a
    
  3. Перейдите к приложению по адресу ab-example-<project>.<router_domain> чтобы убедиться, что установлена нужная версия.

  4. При необходимости внесите изменения в маршрут. Для этого используйте команду:

    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:

  1. Создайте 2 экземпляра приложения:

    oc new-app openshift/deployment-example:v1 --name=example-green
    oc new-app openshift/deployment-example:v2 --name=example-blue
    
  2. Создайте маршрут, который указывает на рабочую версию приложения:

    oc expose svc / example-green --name = bluegreen-example
    
  3. Откройте приложение в браузере example-green.<project>.<router_domain>, чтобы убедиться в наличии образа v1.

  4. Отредактируйте маршрут и измените название службы на example-blue:

    oc patch route/bluegreen-example -p '{"spec":{"to":{"name":"example-blue"}}}'
    
  5. Чтобы убедиться, что маршрут изменился, обновите страницу до появления образа v2.

См.также

Подробнее о стратегии blue-green здесь.