2016-02-14 2 views

ответ

1

Я думаю, что единственный способ сделать это - сконфигурировать каждый узел с помощью опции --max-pods.

1

Да. Но вы должны написать свой собственный Scheduler с вашей логикой.

2

К сожалению, прямо сейчас ответ отрицательный. Самое простое - создать три контроллера репликации, каждый из которых имеет желаемое количество реплик, и каждый с podTemplate, который использует nodeSelector для выбора одного узла. Это имеет недостаток, что вы указываете точное имя узла, поэтому, если этот узел выходит из строя, контейнеры будут отложены.

Как сказал @bitchecker, теоретически вы можете использовать один ReplicationController и использовать параметр -max-pods на каждом узле. Это сложно, потому что системные элементы, такие как Heapster, будут включены в подсчет, и в любом случае это не сработает, если вы хотите поделиться узлом с модулями из других ReplicationControllers. (И у него такая же проблема сверху, где она не работает, когда узел терпит неудачу, и вы хотите, чтобы эти контейнеры были перенесены на другой узел).

Я не думаю, что написание собственного планировщика было бы правильным подходом, но вы могли бы написать свой собственный контроллер или изменить ReplicationController, если вы амбициозны. :-)

Удачи вам!

+0

Есть ли способ, которым я могу использовать планирование на основе приоритетов? Например, забудьте мой процент распределения пакетов на узел. Предположим, мне нужно запустить контейнеры на узле 1 до тех пор, пока он доступен, а затем присваивать контейнеры на узле 2 тогда и только тогда, когда узел 1 терпит неудачу. Может ли быть достигнуто из планировщика? – Dimuthu

Смежные вопросы