· 14 мин чтения

K3s в офисе на 40 человек: когда маленький Kubernetes лучше Docker Compose

K3s в офисе на 40 человек: когда маленький Kubernetes лучше Docker Compose

Я, Семёнов Евгений Сергеевич, уже 15 лет занимаюсь IT-аутсорсингом для юрлиц в Москве. Сегодня я поделюсь историей о том, как наша команда в АйТи Фреш успешно запустила K3s у одного из клиентов — это маркетинговое агентство с 40 сотрудниками. А ещё расскажу, почему в другом, очень похожем проекте мы от этой же идеи отказались. Знаете, Kubernetes в малом бизнесе — это как дорогой костюм: иногда без него никуда, а порой это просто нелепый перебор.

Откуда вообще взялась задача

Наш клиент — это такое типичное агентство интернет-маркетинга, у которого есть и своя разработка. В штате — 4 разработчика и 1 техлид. Ребята поддерживают три внутренних продукта: свой CRM-лайт, таск-трекер и специальный дашборд для клиентов. До нашего прихода вся эта кухня работала на трёх VPS с Docker Compose: один сервак под прод, другой под стейдж, и ещё один под CI. Представьте, каждый релиз превращался в настоящий квест! Разработчик просто писал админу в Telegram: «перекати компоуз». А по пятницам, конечно же, всё регулярно ломалось.

Мы пришли к ним с аудитом и тут же выявили целый ворох проблем. В 2025 году такое встречается, прямо скажем, редко, выглядит совсем архаично:

Первое, что приходит на ум, — это, конечно, классический Kubernetes. Но давайте остановимся на секунду: 40 сотрудников, всего 3 разработчика... И тут мы будем городить полноценный управляющий кластер на 3 master-нодах? Да это же просто смешно! Вот именно в таких случаях на помощь и приходит K3s.

Что такое K3s и почему он хорошо ложится на SMB

Что такое K3s? Это, по сути, облегчённый дистрибутив Kubernetes от Rancher, который сейчас принадлежит SUSE. Его главная фишка в том, что весь управляющий стек умещается в один-единственный бинарник, который весит всего около 70 мегабайт. Разработчики вырезали оттуда всё лишнее — то, что нужно только крупным облачным провайдерам, вроде AWS/GCP/Azure cloud-controller. А ещё etcd по умолчанию заменили на SQLite (хотя для HA его, конечно, можно вернуть). И приятный бонус: Traefik, local-path storage и helm-controller уже встроены прямо внутрь.

По API он полностью, на 100%, совместим с «большим» Kubernetes. Это означает, что абсолютно любой манифест deployment/service/ingress, который вы используете в обычном кубе, заработает здесь без каких-либо изменений. И это, на мой взгляд, очень круто! Если вдруг вы завтра вырастете и захотите переехать в «настоящий» кластер, вам не придётся переписывать все манифесты с нуля.

Что SMB получает от K3s по сравнению с голым Docker Compose:

Архитектура, которую мы собрали клиенту

В итоге мы получили очень компактную схему: три VPS на простом российском хостере, и ещё одна резервная нода, которую мы выделили специально под бэкап состояния.

Посчитаем: вся эта инфраструктура обходится нам примерно в 14 600 рублей в месяц за четыре VPS. Плюс ещё около 4 000 рублей уходит на статические IP и S3-хранилище, где лежат все бэкапы.

Что установили в кластер сверху

КомпонентЗачем
Traefik (встроен в K3s)Ingress-контроллер, роутит HTTPS-трафик в сервисы
cert-manager + Let's EncryptАвтоматические SSL для всех доменов клиента
LonghornРаспределённое хранилище на всех нодах, реплика 3
Gitea + Act RunnerПриватный git-хостинг и CI/CD без GitHub Actions
HarborПриватный Docker Registry с подписью образов
Prometheus + GrafanaМониторинг нод, подов, приложений
Loki + PromtailЦентрализованные логи со всех подов
ArgoCDGitOps: git-репо = состояние прода, автоматический sync
Velero + ResticБэкап манифестов и PV в S3-хранилище российского провайдера

Как выглядит деплой после перехода на K3s

Процесс, который раньше съедал 40 минут и требовал админа, теперь выглядит так:

  1. Разработчик мёрджит ветку в main в Gitea.
  2. Gitea Act Runner собирает Docker-образ, прогоняет тесты, пушит в Harbor с тегом sha-abc123.
  3. В репозитории инфраструктуры (отдельный git-репо с манифестами) меняется один файл deployment.yaml: новая версия образа.
  4. ArgoCD видит изменение в git, применяет манифест в кластер. Rolling update поднимает новый под, дожидается health-check, выключает старый.
  5. Сообщение в Telegram-канал: «Deploy CRM v1.42 — success, rollout time 45s».

Самое классное — админа в процессе релиза вообще нет. Если что-то вдруг идёт не так, разработчик просто набирает kubectl rollout undo deployment/crm, и буквально через 30 секунд продакшн откатывается назад. Те самые «пятничные инциденты» как явление теперь просто испарились!

Когда K3s — не ваш случай

А теперь давайте поговорим честно. Я всегда говорю клиентам правду, и за это они меня потом ценят. Если у вас в офисе стоит 1С, работает файловый сервер, почта крутится на Postfix, и есть десяток внутренних веб-сервисов — K3s вам точно не понадобится. Смело оставайтесь на Docker Compose или даже на простых systemd-юнитах, и вы будете абсолютно счастливы.

K3s оправдан только если:

Вот вам пример из прошлого года: мы отказались от очень похожего проекта у другого клиента — это была сеть стоматологий. У них стояла CRM Dental4Windows и с десяток разных коробочных программ для работы с рентген-снимками. Тащить туда куб? Да это всё равно что Formula-1 на грунтовку выгонять! Мы просто оставили им обычный Hyper-V, а Docker использовали только там, где он действительно был нужен для конкретного сервиса.

Стоимость внедрения и сопровождения

ЭтапСрокСтоимость
Аудит существующего стека, проектирование1 день18 000 ₽
Заказ VPS, установка K3s, настройка HA1 день20 000 ₽
Установка Longhorn, Harbor, Gitea1 день20 000 ₽
Миграция приложений клиента в манифесты2 дня36 000 ₽
Настройка ArgoCD и пайплайнов1 день18 000 ₽
Мониторинг, логи, алерты1 день18 000 ₽
Обучение команды разработки на 4 часа0.5 дня0 ₽ (входит)
Итого проект7 рабочих дней130 000 ₽

Итак, по цифрам: инфраструктура в месяц обходится в 14 600 ₽ за VPS, плюс ещё 4 000 ₽ на всякие мелочи — итого 18 600 ₽. А теперь про экономию: на исчезнувших пятничных инцидентах и выросшей скорости релизов мы сэкономили порядка 80 часов работы админа в год. Это, на минуточку, 560 000 ₽! Получается, проект окупается всего за 3 месяца.

Типичные грабли K3s, которые я собираю у клиентов

Нужен аудит — стоит ли вам идти в Kubernetes?

За свои 15 лет работы в АйТи Фреш я насмотрелся на десятки команд, которые буквально мучаются с кубом, потому что им кто-то сказал, что «это модно». И ровно столько же я видел тех, кто спокойно и счастливо сидит на Docker Compose, хотя их проекты по масштабу уже давно просятся в кластер. Я готов приехать лично, посмотреть ваши сервисы и честно, без прикрас, сказать — нужен ли вам K3s или нет. Аудит, кстати, бесплатный, по Москве и Московской области.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

Нужен ли Kubernetes офису на 40 человек?
В 7 из 10 случаев — нет. Если у вас 5–10 сервисов в Docker Compose и они живут спокойно — K3s не даст выигрыша. Но если есть команда разработки, которая катит обновления по несколько раз в неделю, или если количество сервисов уже перевалило за 15 — K3s экономит много нервов.
Чем K3s отличается от полного Kubernetes?
K3s — это дистрибутив от Rancher, где всё собрано в один бинарник 70 МБ. Убраны облачные провайдеры, etcd заменён на SQLite по умолчанию, kube-proxy упрощён. API совместим на 100% — манифесты работают без изменений.
Сколько ресурсов ест K3s?
Один master-нода комфортно живёт на 2 vCPU / 2 ГБ RAM. На Raspberry Pi 4 с 4 ГБ RAM успешно крутим внутренние сервисы малого офиса. Для продакшена берём 4 vCPU / 8 ГБ RAM с NVMe под данные.
Сколько стоит внедрение K3s в АйТи Фреш?
Базовый кластер из 3 нод с Traefik, cert-manager, Longhorn, мониторингом и CI-конвейером — 130 000 руб. Сроки: 7 рабочих дней. Далее — ведение на абонентке без доплаты.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.