Активно-пассивная установка Дженкинса в Кубернетесе - PullRequest
4 голосов
/ 06 марта 2019

Мы планируем настроить высокодоступную установку Jenkins на контейнерной платформе, используя kubernetes Мы смотрим на настройку одного активного мастера и другого мастера в режиме ожидания. Том данных Jenkins будет храниться в глобальном хранилище, которое совместно используется двумя главными контейнерами.

Если активный мастер недоступен, запросы должны переключаться на другой мастер. И рабы должны общаться только с активным хозяином.

Как мы выполняем настройку Jenkins HA в активном / пассивном режиме в kubernetes. пожалуйста, предоставьте ваши предложения.

Мы хотели бы добиться, как показано на диаграмме снизу ссылка

https://endocode.com/img/blog/jenkins-ha-setup_concept.png

Ответы [ 3 ]

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

Это противоречит тому, как ИМХО следует запускать приложения в Kubernetes.Активный / пассивный - это концепция прошлого века.

Вместо этого настройте проверку работоспособности для развертывания Jenkins.Если это не удастся, Kubernetes автоматически убьет задачу и начнет замену (которая будет доступна только через несколько секунд после обнаружения нездоровой активной).

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

Существовали активные соображения, чтобы эмулировать активную / пассивную настройку для контейнеров, но обратите внимание, что как функция продукта это действительно не обязательно, а следовательно, и не встроено. Это очень хорошо может быть реализовано как интеграция функции OOB, в которой вы должны обработать ваши приложения, по крайней мере, сделать следующее:

  1. Выборы генерального лидера (для выбора мастера и маршрутизации трафика, может, контейнер с коляской для выборов и маршрутизации сообщений
  2. Сделайте так, чтобы процедуры обнаружения датчиков живучести / готовности (и логика отработки отказа) для исправления всех модулей в неудавшейся парадигме больше не выбирались с помощью какого-либо уравнения выбора модулей
  3. В случае другого перехода на другой ресурс вам все равно придется обеспечить еще одно исправление меток (и на этот раз для старых и новых модулей) для обновления метаданных модулей, также известных как метки

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

https://github.com/kubernetes/kubernetes/issues/45300

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

Если вы в порядке с продуманным фреймворком, то JenkinsX может вам помочь. Он поставляется по умолчанию с необходимыми вам функциями.

...