Шлем с двумя развертываниями - PullRequest
0 голосов
/ 06 февраля 2019

Я новичок в использовании Helm, и я не уверен, что это лучший подход, когда у вас есть два развертывания.Я создал диаграмму для своего приложения.Он содержит два развертывания:

  1. app-nginx-phpfpm.yaml
  2. app-mysql.yaml

Должен ли я хранить их в одном графике илия должен создать вложенную диаграмму для app-mysql.yaml?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать оба варианта, в зависимости от того, как вы хотите структурировать свои развертывания.

Следует учитывать следующее

Соображения

Преимущества для одной диаграммы

  • Простота развертывания: развертывание только один раз, одиночное сравнение
  • Одна версия, поэтому откат / обновление выполняются на одном элементе
  • Удалить детали можно с помощью флагов функций
  • Установка нового компонента без соприкосновения с остальными элементами может оказаться сложной задачей

Предостережения из одного графика

  • Сложнее развертывать несвязанные сервисы, например, фиктивный сервисдля доступа к данным при обновлении базы данных
  • Сложнее разделить и протестировать каждый экземпляр
  • Сложнее назвать и понять каждый компонент (в разных выпусках ваш {{.Release.Name}} уже изменился бы для каждого "приложения"").
  • Сложнее обеспечить / отслеживать разные циклы выпуска для разных компонентов
  • Версии, хранящиеся в одной ConfigMap, что может привести кпроблемы ограничения размера объявления, если у вас есть диаграммы, которые содержат, например, встроенные тестовые данные

Примечание по управлению версиями

У вас может быть основная диаграмма, которую вы используете для тестирования со всемивложенные диаграммы и упаковывать вложенные диаграммы независимо, но при этом все в том же репо.

Например, я обычно держу такие вещи как:

. / helm / charts / whatever / charts / subchart1
. / helm / charts / whatever / charts / subchart2
. / helm / charts / whatever / values.yaml

или

. / helm / charts / whatever-master / values.yaml
. / helm / charts / whatever-master / requirements.yaml
. / helm / charts / whatever-subchart1 / values.yaml
. / helm / charts / whatever-subchart2 / values.yaml

И используйте файл require.yaml на основной диаграмме для извлечения из file://../whatever-subchartx.

Таким образом, я могу иметь whatever-stress-test и whatever-subcomponent-unit-test, оставаясь гибким для развертывания отдельных компонентов, которые имеют разные циклы выпуска, еслитак хотелось.

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

0 голосов
/ 06 февраля 2019

Вы можете использовать одну диаграмму с обоими развертываниями или основную диаграмму с двумя подкартами, одну для app-nginx-phpfpm.yaml и одну для app-mysql.yaml.Если все ваше приложение не будет расти так сильно, вы можете использовать одну диаграмму.Однако, если вы планируете продолжать добавлять компоненты в свое приложение (больше развертываний и т. Д.), Рекомендуется использовать подкарты.Больше информации здесь .

...