GOOGLE ADS

пятница, 6 мая 2022 г.

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

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

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

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

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

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

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

Way3 - Или любой другой лучший способ?

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


Решение проблемы

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

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

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

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...