Kubernetes / OC ConfigMap vs config в git и процесс в контейнере для отслеживания изменений

Я развертываю приложение для весенней загрузки и рассматриваю различные варианты конфигурации экстернализации. Я узнал ниже варианты.

1) ConfigMap
2) properties/yaml file in Git and a process in container to watch for changes and restart the application with new properties if there are any changes.

Это касается не только приложения, но и других компонентов, таких как прокси (apache RP, nginx) / балансировщики нагрузки и т. Д.

Спасибо


person maverick    schedule 22.06.2018    source источник


Ответы (2)


Оба варианта хороши для настройки конфигурации.

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

Для меня configmap - лучший вариант. Поскольку это собственный объект Kubernetes, вам не нужны ни репозиторий git, ни контейнер git, он просто хранится и сохраняется в etcd, что намного проще в обслуживании.

Более того, есть несколько проектов с открытым исходным кодом, которые могут помочь вам с использованием configmaps: я использую kube-backup, чтобы иметь версионную копию каждой конфигурации, и configmapcontroller для автоматического развертывания развертываний при изменении карты конфигурации.

person Ignacio Millán    schedule 22.06.2018

Если вы используете несколько сервисов с общей конфигурацией, лучше всего использовать Spring Cloud Config. Это запускает сервер конфигурации, поддерживаемый Git, и приложения получают конфигурацию оттуда.

Для более простого решения я бы предпочел ConfigMaps (или секреты). Существует очень хорошая интеграция Spring и Kubernetes для обработки ConfigMaps и Secrets, включая перезагрузку при изменении: Spring Cloud Kubernetes. В настоящее время проект находится в стадии инкубации, но уже достаточно зрел (поскольку он разрабатывался несколько лет под Red Hat / Fabric8).

person derkoe    schedule 22.06.2018