Как мне структурировать графики Helm для приложения, состоящего из нескольких служб? - PullRequest
1 голос
/ 03 июня 2019

Приложение имеет несколько конвейеров, которые создают образы докеров на каждом.Несколько API и реагирующее веб-приложение.

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

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

Я думал о созданииДиаграмма руля для каждого приложения, но тогда как будет работать входной контроллер?Хотели бы вы иметь входной контроллер для каждого графика и позволить Kubernetes выяснить, какой из них использовать на основе правил регулярных выражений?

Должна быть лучшая структура для такого рода вещей, и я застрял.Я слышал термин «Зонт-диаграмма», но не совсем уверен, что это значит.

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

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

Если вы создаете диаграмму для приложения, вы просто создаете один вход для каждого приложения, и он объединяет их в одно определение входа (вроде). Вот как это выглядит для меня:

metadata:
  name: service1
spec:
  rules:
  - host: service1.domain.com
    http:
      paths:
      - backend:
          serviceName: service1
          servicePort: 80
        path: /

и затем для второй услуги:

metadata:
  name: service2
spec:
  rules:
  - host: service2.domain.com
    http:
      paths:
      - backend:
          serviceName: service2
          servicePort: 80
        path: /

и они будут работать вместе, не сталкиваясь. Если вы используете маршрутизацию на основе пути, вам нужно убедиться, что пути не сталкиваются.

1 голос
/ 03 июня 2019

Очень часто иметь только один входной контроллер (реплицируемый) со многими правилами входа.Более того, это цель входного контроллера: только одна «внешняя конечная точка», которая направляет запросы на множество «внутренних конечных точек».

Что касается структурирования управления, обычно лучше иметь одну диаграмму для каждого приложения, особенно дляуправление версиями.Чтобы получить лучший из двух вариантов, вы можете добавить своего рода «мета-диаграмму» (также называемую зонтичной диаграммой), которая будет содержать только файл require.yaml, в котором будут перечислены все другие диаграммы.Используя такую ​​структуру, легко развернуть только конкретную диаграмму, необходимую для CI / CD, но вы также можете развернуть все свои службы только с одной диаграммой.Более того, вы можете выпустить «мета-диаграмму» после полных интеграционных тестов, чтобы «удостоверить», что все версии ваших приложений работают вместе.

Официальная документация Helm дает советы по этому вопросу на https://helm.sh/docs/developing_charts/#complex-charts-with-many-dependencies.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...