Использование Argo для развертывания микросервисов

Я хотел бы развернуть свои микросервисы в кластере kubernetes с помощью инструмента CI / CD. Я только начал изучать концепцию CI / CD и хотел бы создать среду, чтобы увидеть, как это работает на практике.

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

блок-схема: вставка IDE в git, подключение к CI / CD, развертывание в Kubernetes

Как я описал выше, я хотел бы развернуть микросервисы в кластере K8S и нашел https://argoproj.github.io. Думаю, это то, что я ищу.

Арго предоставляет разные инструменты, например Рабочий процесс, но для чего он нужен? Когда я буду использовать Workflow, тогда ArgoCD не нужен? Или использовать Workflow внутри ArgoCD?

Как автоматически запустить рабочий процесс, когда в репозитории Git происходят какие-то изменения? блок-схема: вставка IDE в git, запуск рабочего процесса Argo


person softshipper    schedule 17.02.2020    source источник


Ответы (1)


Почему Argo Workflows?

При типичной настройке компакт-диска вам потребуется выполнить несколько шагов, связать их вместе и создать конвейер. Рабочий процесс Argo обеспечивает эту функциональность. Ценностное предложение argo состоит в том, что каждый шаг рабочего процесса является контейнером, а сам argo изначально работает на кубернетах.

Когда я буду использовать Workflow, тогда ArgoCD не нужен? Или использовать Workflow внутри ArgoCD?

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

Как автоматически запустить рабочий процесс, когда в репозитории Git происходят какие-то изменения?

Вы можете использовать argoEvents для запуска рабочего процесса argo. Проверьте doc по триггеру на основе git.

person Arghya Sadhu    schedule 17.02.2020
comment
Нужен ли мне инструмент CI или он не нужен? - person softshipper; 17.02.2020
comment
да, с argoCD вам нужен CI, такой как Jenkins, Travis, Circle CI или Gitlab CI - person Arghya Sadhu; 17.02.2020