Упаковка приложения на основе kubernetes - PullRequest
0 голосов
/ 26 декабря 2018

У нас есть несколько (более 20) служб, работающих внутри докеров, которые управляются с помощью Kubernetes.Эти услуги включают базы данных, потоковые конвейеры и пользовательские приложения.Мы хотим сделать этот продукт доступным как локальное решение, чтобы его можно было легко установить, например, установку одним щелчком , скрывая всю сложность инфраструктуры.

Каков наилучший способ сделать это?В настоящее время у нас есть сценарии, управляющие этим, но по мере продвижения в производство будут происходить частые обновления, и становится все сложнее управлять всеми зависимостями.

В настоящее время я изучаю helm имне интересно, если я исследую в правильном направлении.Любое руководство будет действительно полезным для меня.Спасибо.

1 Ответ

0 голосов
/ 26 декабря 2018

Похоже, что Helm - это путь, но, на мой взгляд, вам нужно больше думать о том, как вы будете доставлять обновления для своего программного обеспечения.Например, предоставите ли вы единственную «версию» всего стека, которая переводится в конкретную композицию версий инфраструктуры и микросервисов, или разрешите своим клиентам обновлять отдельные микросервисы по мере их выпуска.У вас может быть одна огромная диаграмма руля для всего, или вы можете использовать, как я в большинстве случаев, «зонтичную» диаграмму.Он содержит подкарты для всех микросервисов и т. Д.

Моя обычная установка содержит подкарту для каждого сервиса, тогда имена сервисов правильно размещаются в пространстве имен, поэтому на них можно ссылаться как .Release.Name-subchart[-optional].Кроме того, когда мне нужно обновить, я просто обновил всю диаграмму примерно так: --reuse-values --set subchart.image.tag=v1.x.x, что дает детальный контроль над каждой версией сервиса.Я также управляю ресурсами каждого подкарта с помощью if .Values.enabled, чтобы я мог по отдельности включать / набирать ресурсы каждого субчарта.

Уродливая сторона этого заключается в том, что если вы хотите выпустить обновление одной службы, вам все равно нужно запуститьвся зонтичная диаграмма, оставляя большую поверхность для какой-то ошибки, но с другой стороны, она дает возможность развернуть все решение в одной команде (по умолчанию установлены теги :latest, поэтому при чистой установке всегда будут установлены последние опубликованные версии, а затемполучать обновления с помеченными релизами)

...