Настройка и проверка отказоустойчивости между кластерами

В этом документе объясняется, как реализовать отказоустойчивость между кластерами для приложений на основе мультикластерной сервисной сетки на примере приложения Bookinfo.

Содержание

Шаги

  1. В левой навигационной панели нажмите Service Mesh > Mesh.

  2. Нажмите на название сервисной сетки, которую нужно настроить.

  3. На вкладке Mesh Policies справа от кластера c1 нажмите Create Policy > Circuit Breaker.

    NOTE
    • Если нет особых требований, используйте параметры по умолчанию.

    • Если для сервиса не настроена Circuit Breaker Policy, конфигурация Failover для него не будет работать, и входящий трафик будет случайным образом распределяться между Pod-ами сервиса во всех кластерах сервисной сетки. Если для сервиса настроена Circuit Breaker Policy, входящий трафик будет маршрутизироваться внутри кластера сервиса до тех пор, пока все Pod-ы в этом кластере не будут отключены.

  4. На вкладке Mesh Policies справа от кластера c1 нажмите Create Policy > Regional Load Balancing.

  5. Выберите Failover в качестве Policy Type и настройте соответствующие параметры, как описано ниже.

    ПараметрОписание
    Failure RegionРегион кластера, в котором находятся отказавшие Pod-ы сервиса, то есть регион кластера, для которого настраивается политика.
    Disaster Recovery RegionРегион, обеспечивающий балансировку нагрузки для кластера с отказавшими Pod-ами сервиса.
    NOTE

    После настройки политики отказоустойчивости, когда Pod-ы сервиса в кластере региона отказа отключаются и коэффициент здоровья Pod-ов в кластере становится меньше 71.43% (100/Overprovisioning Factor), часть входящего трафика для сервиса в этом кластере будет приоритетно направлена на Pod-ы сервиса в кластере региона аварийного восстановления.

    Например, после настройки политики отказоустойчивости для кластера c1 (регион аварийного восстановления — регион кластера c2), если коэффициент здоровья Pod-ов сервиса productpage в кластере региона отказа c1 составляет 50%, то 50% * 1.4 = 70% трафика сервиса в кластере c1 будет обслуживаться Pod-ами сервиса в кластере региона отказа c1, а оставшиеся 30% трафика — Pod-ами сервиса в кластере региона аварийного восстановления c2.
    Если отказоустойчивость не настроена, трафик будет случайным образом распределяться между кластерами в сетке.

    Подробнее о приоритетах распределения трафика см. в разделе Priority levels.

  6. Нажмите Create.

Метод проверки

  1. В верхней навигационной панели переключитесь на Container Platform и перейдите в namespace ns1 в кластере c1.

  2. В левой навигационной панели нажмите Compute Components > Deployments.

  3. Нажмите на название Deployment productpage.

  4. В правом верхнем углу нажмите Stop, чтобы остановить все Pod-ы productpage.

  5. Следуйте методу Access Verification для сервиса productpage, чтобы непрерывно обращаться к сервису productpage по маршруту (External Access Address), созданному шлюзом, развернутым в кластере c1.

    Примечание: Если приложение Bookinfo по-прежнему доступно, это означает, что отказоустойчивость между кластерами успешно реализована. Дополнительно можно перейти на платформу Service Mesh для дальнейшей проверки маршрутизации трафика, просмотрев топологию сервиса (межкластерную) и цепочки вызовов.