Lab Sarychev

Добро пожаловать в демонстрационный DevOps-стенд, созданный для практики и экспериментов с инструментами автоматизации, мониторинга и CI/CD.

⚠️ Страница находится в разработке. Некоторые сервисы и компоненты могут быть временно недоступны.


Основные сервисы

Сервис Назначение
GitHub Репозиторий с наработками: пайплайны, конфигурации, скрипты, Helm-чарты и др.
Приложение в Kubernetes-кластере Тестовое web-приложение, развёрнутое в кластере.
Мониторинг кластера (Grafana) Визуализация метрик Prometheus и логов Loki.
Telegram-бот Получение уведомлений от Alertmanager.



Архитектура стенда

Стенд развёрнут на трёх физических узлах, объединённых в локальную сеть под общим доменом *.lab-sarychev.ru.


Raspberry Pi 4 — сетевой узел

Используется как вспомогательный маршрутизатор и точка входа в стенд.

Основные функции:
- dnsmasq — DHCP-сервер, назначает IP-адреса и объединяет все хосты под единым доменом *.sarychev;
- OpenVPN — обеспечивает удалённый доступ в локальную сеть стенда;
- iptables — туннелирование внутреннего трафика через внешний VPN.


Мини-ПК Beelink SER5 — инфраструктурный сервер

Запускает Proxmox и управляет кластерами виртуальных машин (ВМ), обеспечивающих CI/CD и мониторинг.

Основные ВМ:
- GitLab — репозиторий исходных кодов (в процессе миграции на Gitea);
- Jenkins — оркестрация пайплайнов:
    • сборка Docker-образов и Helm-чартов;
    • автоматизация создания и включения новых ВМ в кластер Kubernetes;
    • деплой приложений в кластер;
- Jenkins Agent — исполняет пайплайны; содержит Docker, Ansible и Python;
- Nexus — хранение Docker-образов и Helm-пакетов;
- Мониторинг и логирование:
    • Prometheus — сбор метрик Kubernetes;
    • Loki — агрегация логов приложений;
    • Alertmanager — уведомления о сбоях;
    • Grafana — визуализация данных;
- Kubernetes Master-node — управляющая нода кластера;
- HAProxy — балансировщик нагрузки и точка входа для внешнего трафика.


Стационарный ПК (Intel) — вычислительный узел

Также управляется через Proxmox и выполняет роль worker-ноды Kubernetes.

Функции:
- Запуск рабочих нагрузок (pods) из кластера;
- Динамическое создание и присоединение новых worker-нод при помощи Jenkins;
- Поддержание устойчивости и распределения нагрузки между компонентами кластера.


Кластер k8s и тестовое приложение: