В Deckhouse Kubernetes Platform можно реализовать механизм Locality failover средствами модуля istio. Перед настройкой механизма убедитесь, что модуль включен в кластере.
Механизм Locality failover управляет маршрутизацией трафика и направляет его на приоритетный фейловер в случае недоступности определённых экземпляров сервисов.
При необходимости ознакомьтесь с документацией Locality failover.
С использованием Istio настраивается приоритетный географический фейловер между эндпоинтами. Для определения зоны применяются лейблы узлов с соответствующей иерархией:
topology.istio.io/subzone
;topology.kubernetes.io/zone
;topology.kubernetes.io/region
.
Это полезно для межкластерного фейловера при использовании совместно с мультикластером.
Для активации Locality Failover используется ресурс DestinationRule, в котором также необходимо указать параметр outlierDetection
.
Пример:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: helloworld
spec:
host: helloworld
trafficPolicy:
loadBalancer:
localityLbSetting:
enabled: true # Включение LF.
outlierDetection: # Обязательное включение outlierDetection.
consecutive5xxErrors: 1
interval: 1s
baseEjectionTime: 1m