Чтобы повысить отказоустойчивость системы во время сбоев хоста или зоны, настройте параметр topologySpreadConstraints
. С его помощью контролируется равномерное распределение подов по топологии кластера, например по зонам доступности, узлам или регионам.
Перед настройкой параметра topologySpreadConstraints
ознакомьтесь со всеми инструментами для размещения подов и с рекомендациями по их совместному использованию в статье «Продвинутые параметры ELMA365 Enterprise».
Пример настройки параметра topologySpreadConstraints
Параметр topologySpreadConstraints
можно настроить в файле values-elma365.yaml
. Перейдите к полю .Values.global.topologySpreadConstraints
и задайте значения, например:
global:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: "kubernetes.io/hostname"
whenUnsatisfiable: ScheduleAnyway
Где:
maxSkew
— максимально допустимое различие в количестве подов между узлами;topologyKey
— ключ метаданных для определения топологии узлов, напримерkubernetes.io/hostname
;whenUnsatisfiable
— алгоритм действий, если ограничения нельзя применить:ScheduleAnyway
— если подходящий узел не найден, под запустится на любом доступном узле;DoNotSchedule
— если подходящий узел не найден, под не запустится до тех пор, пока условия не выполнятся.
После настройки параметра примените его, как указано в статье «Изменение параметров ELMA365 Enterprise».
Значения по умолчанию для параметра topologySpreadConstraints
Если вы не установили параметр topologySpreadConstraints
, для равномерного распределения подов применяется конфигурация:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: <service name>
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: <service name>