Как поделиться программным продуктом с несколькими микросервисами и с определенными конфигурациями Kubernetes

Я новичок в Кубернете. Я сомневаюсь.

Скажем, у меня есть программный продукт с 5 микросервисами. Он развернут в моем кластере Kubernetes (кластер OCP) и работает нормально. Каждый микросервис имеет файлы конфигурации Kubernetes в кластере — развертывание, сервис, файлы configmap yaml и т. д.

Предположим, я хочу продать продукт клиентам, и они будут настроены в своем собственном производственном кластере Kubernetes (может быть в OCP или Amazon EKS и т. д.).

Каков правильный способ предоставления продукта клиентам?

Путь1 — Отправка всех файлов yaml (deployment.yaml, service.yaml, configmap.yaml) для каждого микросервиса. Всего 5 микросервисов, то есть 5 файлов deployment.yaml, 5 service.yaml, configMap.yaml и т. д. После получения этих файлов они вручную настроят файлы в своем кластере Kubernetes, а затем появятся все модули.

Путь2 — Для каждого микросервиса мы дадим чарт Kubernetes Helm. Итак, всего 5 диаграмм Helm для 5 микросервисов. После получения диаграмм они установят все файлы yaml с установкой helm.

Путь3 - Или любой другой лучший способ?

Примечание. Клиентам будет предоставлен доступ к частному репозиторию образов Docker для извлечения образов микросервисов.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Способ 1: Нет. Для этого есть инструменты. Вам не нужно отправлять файлы yaml.

Способ 2: Это лучший способ, но с некоторыми правками. Создайте 5 диаграмм управления, которые управляют отдельными компонентами вашего продукта. Затем создайте 6-ю диаграмму, которая зависит от остальных 5. Таким образом, вам нужно предоставить потребителю только 1 диаграмму «продукт», и эта диаграмма затем извлечет все, что нужно для запуска. Обычно так и делается. Смотрите такие проекты, как локи-стек от grafana. У них есть диаграмма управления под названием «loki-stack», и эта диаграмма имеет зависимости от grafana, loki, Prometheus, promtail и т. д. Затем ваши потребители просто helm install my-product и helm позаботится о получении 5 диаграмм обслуживания.

Способ 3: есть много способов сделать это, но все они специфичны для реализации. Например, вы можете использовать OAM + KubeVela. Однако, если потребитель не использует OAM + KubeVela, это проблема. IMO Helm — это стандартный подход, пока все больше людей не начнут использовать такие вещи, как KubeVela.

Спасибо за хорошее объяснение с примером.

SuryaN 03.05.2022 20:13

Поэтому я должен предоставить им все 6 (5+1) диаграмм управления, и они просто установят 1 диаграмму управления, которая имеет зависимости для других 5 диаграмм управления. Верно?

SuryaN 03.05.2022 20:20

Другие вопросы по теме