9 месяцев назад
История
README.md
Проект Инфраструктурной платформы
Проект состоит из трех директорий:
- cloud - настройка облака в Яндекс
- platform - развертывание платформы
- app - развертывание приложения
Подробные описания в каждой из директорий.
При выполнении проекта пытался сделать решение, которое будет создавать минимальные накладные расходы (в первую очередь по памяти). Чтобы его можно было в дальнейшем переиспользовать в маленьких кластерах, где терять лишнюю сотню мегабайт на sidecar grafana недопустимо.
Описание изменений
Основные изменения можно посмотреть по коммитам в git.
- Для начальной разработки был использован k3d.
- microservices-demo разворачивается через helmfile и официальный helm чарт.
- В чарт microservices-demo добавлена поддержка ingress для фронтенда
- Начало работы с мониторингом. Добавлен kube prometheus stack и его разворачивание через helmfile и скрипт.
- kube prometheus stack показался слишком “готовым” решением и prometheus много потребляет, переключился на victoria metrics.
- Начал пробовать вынести хранение наружу. Добавил telegraf для сбора метрик и отправки в influx cloud.
- Начал добавлять дашборды в grafana, настроенные на метрики, которые собирает телеграф.
- Добавил лимитов по памяти в приложения, в том числе gomemlimit, чтобы не так съедало память.
- Переключился на мониторинг через vmagent, с telegraf сложно переиспользовать готовые дашборды, настроенные на prometheus. Добавил стандартные дашборды для мониторинга кластера.
- Добавил дискаверинг дашбордов при старте grafana через init container (чтобы не держать sidecar запущенным)
- Добавил в vmagent дискаверинг подов для сбора метрик через аннотации prometheus.
- Добавил дашборд для traefik
- Переключился с развертывания через helmfile на kluctl, отпала необходимость в скриптах, стало очень удобно.
- Добавил простейший алерт и оповещения в telegram.
- Добавил запуск loki и victoria в кластере, чтобы не завязываться в текущем проекте на grafana cloud.
- Добавил развертывание яндекс облака через terraform.
- Добавил развертывание traefik в платформу (до этого использовался встроенный в k3d)
- Переделал развертывание приложения с helmfile на kluctl.
- Добавил в платформу kluctl controller для организации CD и webui для просмотра состояния развертывания.
- Перенес хранение настроек приложения в секрет k8s, чтобы запустить CD. И добавил CD приложения.
- Добавил развертывание cert-manager и выдачу сертификатов через let’s encrypt.
- Подправил terraform конфиг, чтобы сервисные аккаунты тоже создавались через него.
Конвейеры
0 успешных
0 с ошибкой