Helm, управляющий набором сервисов

У меня есть кластер Kubernetes, в котором работает ряд независимых дискретных сервисов. Я хочу использовать helm для их развертывания, и я сделал диаграмму helm для каждого отдельного ресурса.

Однако теперь я хочу иметь возможность развернуть кластер как единое целое, но мне непонятно, как helm поддерживает объединение нескольких диаграмм.

Когда я смотрю на примеры репозиториев, у них просто есть каждый файл шаблона в папке шаблонов одной диаграммы, а затем гигантский файл Values.yaml.

Мне это кажется громоздким, особенно ползать по строке 2000 Values.yaml в поисках настроек.

Есть ли способ взять структуру папок, которая выглядит так:

helm
|____ Service1
      |_______ values.yaml
      |_______ templates
      Service2
      |_______ values.yaml
      |_______ templates
      Service3
      |_______ values.yaml
      |_______ templates

И упаковать его в одно развертывание без ручного слияния и устранения дублирования файлов и значений?


person mstorkson    schedule 26.07.2018    source источник


Ответы (2)


Используйте поддиаграммы управления

Вам понадобится что-то вроде мета-диаграммы, myapps. Затем вы должны добавить requirements.yaml файл следующим образом:

# myapp/requirements.yaml
dependencies:
  - name: Service1
    repository: http://localhost:10191
    version: 0.1.0
  - name: Service2
    repository: http://localhost:10191
    version: 0.1.0
  - name: Service3
    repository: http://localhost:10191
    version: 0.1.0
person jaxxstorm    schedule 26.07.2018

У нас также есть аналогичные сценарии, в которых у нас есть независимые приложения, которые нам нужно развернуть вместе для решения функций, которые охватывают их, или развернуть индивидуально для устранения ошибок. В итоге мы используем файл helmfile (https://github.com/roboll/helmfile). Каждое приложение по-прежнему поддерживает свои собственные диаграммы, используя файл helmfile, при необходимости мы можем развернуть их все вместе.

person Bal Chua    schedule 26.07.2018
comment
Helmfile потрясающий! Не могу рекомендовать это достаточно. У нас есть полная запись об использовании helmfile в нашей документации: docs.cloudposse.com/tools/helmfile < / а> - person Erik Osterman; 27.07.2018