Создание специфичных для арендатора образов докеров с помощью Jenkins & Deployment в kubernetes - PullRequest
0 голосов
/ 30 апреля 2018

Моя структура приложения

Я занимаюсь разработкой приложения для арендатора в сервис-ориентированной архитектуре с развертыванием с использованием kubernetes и Jenkins. В моем приложении 15-20 микросервисов, разрабатываемых с использованием пружинной загрузки. Каждый микросервис необходимо развертывать отдельно для разных клиентов. Если у меня 5 клиентов, мне нужно развернуть 15 микросервисов для этих 5 клиентов. Это описание моей модели аренды.

Планирование развертывания

Для этого приложения я планирую использовать kubernetes и Jenkins для развертывания и реализации конвейера CI / CD.

Мои выводы

Природа моего приложения заключается в создании изображений для разных клиентов из одного и того же кода с использованием функциональности активного профиля сервера конфигурации Spring Cloud. Средства. В моем файле Docker я запускаю конкретное изображение, определяя, какой профиль является активным. Как следующее,

java -jar -Dspring.profiles.active=<Profile_Name> dbdata-0.0.1-SNAPSHOT.jar

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

Путаница

Если я придерживаюсь этого стиля, как я могу создавать и запускать разные образы из одного и того же репозитория кода с помощью Jenkins? Можно ли запустить несколько изображений с помощью Jenkins из одного и того же репозитория кода?

Итак, как я могу понять создание и развертывание нескольких образов согласно приведенной выше структуре приложения?

1 Ответ

0 голосов
/ 30 апреля 2018

Поскольку у вас есть несколько микросервисов, лучше использовать такие инструменты, как Helm + Chartmuseum , чтобы упростить управление этими службами. В этом случае у вас будет индивидуальный выпуск (и пространство имен Kubernetes) для каждого арендатора. Вы можете использовать разные теги изображений докеров, если для каждого арендатора требуются разные изображения докеров.

Что касается части Jenkins, я не вижу никаких проблем (вы можете создать любое количество образов докеров из 1 репо):

  • создать задание для создания и загрузки изображений докера
  • создать задание для производства и загрузки диаграммы (ов) Helm
  • создание заданий для развертывания / обновления выпусков в Kubernetes

Нет необходимости создавать разные образы докера, если они различаются только в командной строке. Эта командная строка (или переменная env) может быть переопределена в описании ресурса Kubernetes.

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