В этом документе объясняется, как реализовать отказоустойчивость между кластерами для приложений на основе мультикластерной сервисной сетки на примере приложения Bookinfo.
В левой навигационной панели нажмите Service Mesh > Mesh.
Нажмите на название сервисной сетки, которую нужно настроить.
На вкладке Mesh Policies справа от кластера c1
нажмите Create Policy > Circuit Breaker.
Если нет особых требований, используйте параметры по умолчанию.
Если для сервиса не настроена Circuit Breaker Policy, конфигурация Failover для него не будет работать, и входящий трафик будет случайным образом распределяться между Pod-ами сервиса во всех кластерах сервисной сетки. Если для сервиса настроена Circuit Breaker Policy, входящий трафик будет маршрутизироваться внутри кластера сервиса до тех пор, пока все Pod-ы в этом кластере не будут отключены.
На вкладке Mesh Policies справа от кластера c1
нажмите Create Policy > Regional Load Balancing.
Выберите Failover в качестве Policy Type и настройте соответствующие параметры, как описано ниже.
Параметр | Описание |
---|---|
Failure Region | Регион кластера, в котором находятся отказавшие Pod-ы сервиса, то есть регион кластера, для которого настраивается политика. |
Disaster Recovery Region | Регион, обеспечивающий балансировку нагрузки для кластера с отказавшими Pod-ами сервиса. |
После настройки политики отказоустойчивости, когда 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.
Нажмите Create.
В верхней навигационной панели переключитесь на Container Platform и перейдите в namespace ns1
в кластере c1
.
В левой навигационной панели нажмите Compute Components > Deployments.
Нажмите на название Deployment productpage.
В правом верхнем углу нажмите Stop, чтобы остановить все Pod-ы productpage.
Следуйте методу Access Verification для сервиса productpage, чтобы непрерывно обращаться к сервису productpage по маршруту (External Access Address
), созданному шлюзом, развернутым в кластере c1
.
Примечание: Если приложение Bookinfo по-прежнему доступно, это означает, что отказоустойчивость между кластерами успешно реализована. Дополнительно можно перейти на платформу Service Mesh для дальнейшей проверки маршрутизации трафика, просмотрев топологию сервиса (межкластерную) и цепочки вызовов.