Диас Досанов

DevOps / инфраструктурный инженер в Sergek

Веду продакшн-платформу в 10+ регионах Казахстана: Docker Swarm и Kubernetes, хранилища, сеть и мониторинг. Строю инфраструктуру, которая работает стабильно: всё в шаблонах, всё под мониторингом.

Обо мне

Sergek — система контроля дорожного движения: камеры, фиксация нарушений, патрулирование, парковки, интеграции с госсервисами и ЭЦП. Под капотом микросервисы на Node.js, RabbitMQ, Valkey/Redis, PostgreSQL, NFS и десятки терабайт медиа.

Я отвечаю за то, чтобы всё это работало в каждом регионе: поднимаю кластеры, переношу сервисы из Swarm в Kubernetes, строю мониторинг и логи, стандартизирую узлы. Часто в изолированных контурах без интернета, через VPN, PAM и цепочку SSH-хопов.

10+ регионов в проде Swarm + k8s одновременно ~1.9 млн строк логов в час на один кластер

Что умею

Kubernetes с нуля в закрытом контуре

kubeadm, внутренний Harbor, перенос образов через skopeo, Grafana-плагины с NFS. Кластер, который работает без доступа в интернет.

Observability под ключ

VictoriaMetrics, vmagent, vmalert, Alertmanager, VictoriaLogs, Vector, Grafana. Эталонный стек, который раскатывается по регионам одним набором манифестов.

Миграция Swarm → Kubernetes

Перенос сервисов без простоя: маршрутизация через OpenResty и ingress, правка Helm-чартов, проверка на живом трафике.

Надёжность в эксплуатации

Изоляция критичных данных, единые стандарты для узлов, алерты на всё, что важно. Изменения в проде без рестартов и простоя.

Linux и сеть

Oracle Linux, systemd, NFS, keepalived VRRP, HAProxy, OpenResty/nginx, logrotate, FortiClient VPN и FUDO PAM.

Логи для ИБ

Elastic Agent как DaemonSet на 18 нод с отправкой в Fleet, чтобы служба безопасности видела логи контейнеров.

Что сделал

Kubernetes-кластер в закрытом контуре

Алматы · с нуля

Поднял кластер на kubeadm, развернул внутренний Harbor, перенёс образы через skopeo. Ни одной зависимости от внешних реестров.

Кластер полностью автономен и не зависит от доступа в интернет.

Эталонный мониторинг для всех регионов

VictoriaMetrics · vmalert

Стек из VictoriaMetrics, vmagent, vmalert, Alertmanager и Grafana. 17 дашбордов kubernetes-mixin, 71 recording rule, алерты по нодам, NFS, RabbitMQ и сервисам с меткой региона.

Проблема видна в Telegram раньше, чем её заметят пользователи. Один шаблон раскатывается на любой регион.

Централизованные логи

VictoriaLogs · Vector

Сбор логов со Swarm и Kubernetes в VictoriaLogs, единый маппинг полей и общие дашборды в Grafana, хранение 30 дней на NFS.

~1.9 млн строк в час на кластер, поиск по любому сервису в одном окне.

Переезд сервисов из Swarm в Kubernetes

OpenResty · ingress · Helm

Перевёл маршрутизацию на ingress, синхронизировал оба keepalived-узла фронта, вычистил чарты от адресов других регионов.

Сервисы переехали без простоя для пользователей.

Защищённое хранилище сессий

Redis · Valkey

Вынес токены в отдельный инстанс с noeviction, кэш оставил в своём. Лимиты памяти меняю на лету, без рестарта.

Рост кэша не влияет на авторизацию.

Стандарты для узлов

NFS · logrotate · systemd

Единые опции монтирования NFS, почасовая ротация логов nginx со сжатием, node-exporter как systemd-сервис на всех VM.

Одинаковое поведение узлов во всех регионах, диски и нагрузка под контролем.

Логи контейнеров для службы ИБ

Elastic Agent · Fleet

Развернул Elastic Agent как DaemonSet на 18 нод кластера с отправкой во Fleet, рядом с агентами уровня хоста.

Безопасность получает логи всего кластера.

Стек

Оркестрация

  • Kubernetes
  • kubeadm
  • Docker Swarm
  • Helm
  • containerd

Наблюдаемость

  • VictoriaMetrics
  • vmagent
  • vmalert
  • Alertmanager
  • VictoriaLogs
  • Vector
  • Grafana
  • Elastic Agent / Fleet

Данные и очереди

  • PostgreSQL
  • Redis / Valkey
  • RabbitMQ
  • NFS
  • SeaweedFS
  • MinIO

Сеть и доступ

  • OpenResty / nginx
  • HAProxy
  • keepalived
  • HashiCorp Vault
  • FortiClient VPN
  • FUDO PAM

CI/CD и реестры

  • GitLab CI/CD
  • Harbor
  • skopeo
  • Bash
  • Python

Контакты

Быстрее всего ответ придёт в Telegram.