Развертывание стручка кубернетеса в зонах с особыми потребностями - PullRequest
0 голосов
/ 07 марта 2019

Предположим, у нас есть кластер Kubernetes с двумя зонами, каждая зона имеет два узла (рабочие, N00 и N01 в зоне 0, N10 и N11 в зоне 1). Нам нужен планировщик Kubernetes, который выполняет следующие действия.

(1) Когда мы выполняем развертывание, каждая зона имеет один и только один модуль. Неважно, какой узел в этой зоне.

(2) При сбое узла N00 с запущенным модулем P, если работает N01 в той же зоне, запланируйте модуль на N01. В противном случае запланируйте переход в другую зону, нам сейчас все равно, podAntiAffinity, поэтому любой узел (N10 или N11) в другой зоне работает.

(3) Если N00 был окончательно восстановлен и P был запланирован на N01, мы вообще ничего не делаем, но если N00 был восстановлен, когда P был запланирован в другой зоне, мы хотим, чтобы P был перенесен обратно в исходную зону.

Есть ли какой-нибудь трюк, который мы можем использовать в API Kubernetes для достижения этой цели?

1 Ответ

0 голосов
/ 13 марта 2019

К сожалению, я не могу показать вам простой способ, но я надеюсь, что следующая информация будет вам полезна.

При использовании стандартного планировщика это возможно, если вы используете несколько похожих развертываний, по одному для каждой зоны сразличные конфигурации сродства / антиаффинности:

Кроме того, вы можете написать пользовательскийпланировщик для добавления избирательности зоны:

Тем не менее, это не позволяет перенести запуск pod на другой узел в другом zодин, когда он снова станет здоровым.

Kubernetes Scheduler отвечает только за выбор наиболее подходящего узла для неназначенных модулей.Он ничего не делает с модулями в состоянии «Выполнено».

Существует проектное предложение для реализации функции перепланирования модулей, но оно еще не готово к использованию.

На данный момент вы можете взять проект reschedule в качестве отправной точки для создания собственного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...