Существует ли концепция наследования для развертываний в Kubernetes? - PullRequest
0 голосов
/ 09 октября 2018

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

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

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы также можете проверить Настроить .Он предоставляет некоторую поддержку для записи ваших yaml-манифестов в иерархической форме, чтобы вам не пришлось повторяться.

0 голосов
/ 09 октября 2018

Шлем - это то, что многие люди используют для этого.Это позволяет вам создавать шаблоны для дескрипторов kubernetes и передавать параметры для создания дескрипторов из шаблонов.

Существуют и другие инструменты, которые можно использовать для генерации вариаций дескрипторов развертывания kubernetes путем введения параметров в шаблоны.Ansible также популярен.Но Хелм тесно связан с Kubernetes CNCF и сообществом, и есть хороший выбор официальных диаграмм .

РЕДАКТИРОВАТЬ: если целью является включение различных развертываний (например, для разработчиков и разработчиков), используя одно изображение докера, тогда это, вероятно, лучше всего обрабатывать с одной диаграммой.Вы можете создавать разные файлы значений для каждого развертывания и предоставлять выбранный файл значений для установки helm с параметром --values.Если есть части диаграммы, которые применимы только иногда, их можно заключить в условия if, чтобы включить или выключить их.

В частности, по вопросу наследования в примере есть 1015 *.helm документирование того, как взять другую диаграмму в качестве родителя / зависимости и переопределить ее значения , и я создал диаграмму ранее, которую вы можете увидеть в github , что включает в себя несколько других диаграмм и переопределяет части всех из них через values.yml .Он также разделяет некоторые конфигурации между включенными диаграммами с глобальными переменными .Если вы хотите использовать родительский элемент для уменьшения дублирования, а не для объединения нескольких приложений, то можно создать базовую / упаковочную диаграмму , но может оказаться лучше просто скопировать конфигурацию .

РЕДАКТИРОВАТЬ (180119): альтернатива Настроить может скоро станет доступна в kubectl

...