В библиотеке kubedog появилась поддержка канареечных выкатов Flagger

Блог компании Флант Open source Системное администрирование DevOps Kubernetes
Наш Open Source-инструмент для отслеживания ресурсов Kubernetes — kubedog — «научился» следить за канареечными выкатами, реализованными с помощью Flagger. Чтобы объяснить суть новости, начнем с краткого пояснения о предназначении обоих упомянутых проектов. Что такое kubedog kubedog — библиотека, написанная на Go, которая отслеживает события ресурсов K8s — Pod, Deployment, StatefulSet и других, — выводит их логи и сигнализирует об ошибках. kubedog используется в CI/CD-утилите werf для слежения за ходом выката Helm-чартов. Для нас это основной сценарий применения kubedog, но он востребован и как самостоятельный инструмент. Подробнее о проекте можно прочитать в его анонсе 2018 года или на GitHub . Что такое Flagger Flagger — это Kubernetes-оператор для управления выкатами, основанными на разных стратегиях: Canary, A/B, Blue/Green. Он принадлежит семейству проектов Flux и использует один из вариантов service mesh (например, Istio), чтобы маршрутизировать и переключать трафик. Для анализа результатов деплоя используются метрики Prometheus или других систем. Как работает интеграция В конце августа к нам обратился пользователь David de Lucca с предложением реализовать новый трекер в kubedog — для Flagger. К слову, это был не первый случай , когда сообщество говорило о такой потребности. Команда Дэвида использует kubedog для наблюдения за развертываниями приложений, а для канареечных деплоев — Flagger. В итоге, Дэвид сам реализовал задуманное для kubedog. Вот как сейчас всё работает: kubedog ждет готовности специального ресурса Canary, который сам создает Deployment’ы. При выкате новой версии приложения Canary следит за трафиком. Если с трафиком всё в порядке, старые Deployment’ы заменяются на новые. Эта реализация стала частью последнего релиза kubedog — v0.6.0 . Что дальше Сейчас во время канареечного деплоя kubedog дожидается готовности ресурса Canary и выводит лишь простой статус — Progressing . В качестве развития этой интеграции можно добавить более детальную информацию по создаваемым Deployment’ам и Pod’ам, включая логирование. Кроме того, аналогичная интеграция может оказаться полезной для других известных утилит. Например, недавно в GitHub’е проекта появился похожий запрос для Argo Rollouts. P.S. Читайте также в блоге: « Представляем библиотеку kubedog для слежения за ресурсами Kubernetes »; « Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование) ».)
Теги:
Хабы: