Kubernetes-кластер в закрытом контуре
Поднял кластер на kubeadm, развернул внутренний Harbor, перенёс образы через skopeo. Ни одной зависимости от внешних реестров.
Кластер полностью автономен и не зависит от доступа в интернет.
DevOps / инфраструктурный инженер в Sergek
Веду продакшн-платформу в 10+ регионах Казахстана: Docker Swarm и Kubernetes, хранилища, сеть и мониторинг. Строю инфраструктуру, которая работает стабильно: всё в шаблонах, всё под мониторингом.
Sergek — система контроля дорожного движения: камеры, фиксация нарушений, патрулирование, парковки, интеграции с госсервисами и ЭЦП. Под капотом микросервисы на Node.js, RabbitMQ, Valkey/Redis, PostgreSQL, NFS и десятки терабайт медиа.
Я отвечаю за то, чтобы всё это работало в каждом регионе: поднимаю кластеры, переношу сервисы из Swarm в Kubernetes, строю мониторинг и логи, стандартизирую узлы. Часто в изолированных контурах без интернета, через VPN, PAM и цепочку SSH-хопов.
kubeadm, внутренний Harbor, перенос образов через skopeo, Grafana-плагины с NFS. Кластер, который работает без доступа в интернет.
VictoriaMetrics, vmagent, vmalert, Alertmanager, VictoriaLogs, Vector, Grafana. Эталонный стек, который раскатывается по регионам одним набором манифестов.
Перенос сервисов без простоя: маршрутизация через OpenResty и ingress, правка Helm-чартов, проверка на живом трафике.
Изоляция критичных данных, единые стандарты для узлов, алерты на всё, что важно. Изменения в проде без рестартов и простоя.
Oracle Linux, systemd, NFS, keepalived VRRP, HAProxy, OpenResty/nginx, logrotate, FortiClient VPN и FUDO PAM.
Elastic Agent как DaemonSet на 18 нод с отправкой в Fleet, чтобы служба безопасности видела логи контейнеров.
Поднял кластер на kubeadm, развернул внутренний Harbor, перенёс образы через skopeo. Ни одной зависимости от внешних реестров.
Кластер полностью автономен и не зависит от доступа в интернет.
Стек из VictoriaMetrics, vmagent, vmalert, Alertmanager и Grafana. 17 дашбордов kubernetes-mixin, 71 recording rule, алерты по нодам, NFS, RabbitMQ и сервисам с меткой региона.
Проблема видна в Telegram раньше, чем её заметят пользователи. Один шаблон раскатывается на любой регион.
Сбор логов со Swarm и Kubernetes в VictoriaLogs, единый маппинг полей и общие дашборды в Grafana, хранение 30 дней на NFS.
~1.9 млн строк в час на кластер, поиск по любому сервису в одном окне.
Перевёл маршрутизацию на ingress, синхронизировал оба keepalived-узла фронта, вычистил чарты от адресов других регионов.
Сервисы переехали без простоя для пользователей.
Вынес токены в отдельный инстанс с noeviction, кэш оставил в своём. Лимиты памяти меняю на лету, без рестарта.
Рост кэша не влияет на авторизацию.
Единые опции монтирования NFS, почасовая ротация логов nginx со сжатием, node-exporter как systemd-сервис на всех VM.
Одинаковое поведение узлов во всех регионах, диски и нагрузка под контролем.
Развернул Elastic Agent как DaemonSet на 18 нод кластера с отправкой во Fleet, рядом с агентами уровня хоста.
Безопасность получает логи всего кластера.
Быстрее всего ответ придёт в Telegram.