У меня есть кластер OpenShift, который расположен между двумя физически разделенными центрами обработки данных для геоизбыточности. Узлы помечены в соответствии с их расположением.
Теперь я ищу способ настроить планировщик таким образом, чтобы, если модуль работает с одной репликой (которая находится в одном из двух центров обработки данных), и запускается дополнительная реплика, дополнительная реплика запускается в другом центры обработки данных? Так что, если развертывание выполняется с четным числом реплик, реплики равномерно распределяются между обоими центрами обработки данных?
Я искал в документации по привязке модулей / узлов, а также в конфигурации планировщика, но не нашел ничего, что мне нужно. Может я просто гуглию не так?
Любая помощь приветствуется.
Если вы присвоили узлам метку, например расположениепроверьте метки с помощью следующей команды
oc get nodes --show-labels
ServiceAntiAffinity принимает метку и обеспечивает хорошее распределение модулей, принадлежащих одной службе, по группе узлов на основе значений метки.
Распространение по центру обработки данных
вы можете добавить следующий контент внутри /etc/origin/master/scheduler.json
файл
{
"argument": {
"serviceAntiAffinity": {
"label": "location"
}
},
"name": "Location",
"weight": 2
}