Представьте, что однажды утром вы просыпаетесь, а мир вокруг стал другим. Нет, ничего страшного не случилось: ни ледникового периода, ни падения метеорита. Но все сервисы вдруг начали работать так, как работали в те времена, когда про Kubernetes еще никто не слышал.

Вы выходите из дома, вызываете такси — и сразу что-то не так. Приложение открылось, но карта не грузится. Стоимость скачет каждые десять секунд. Машины то появляются, то исчезают. С горем пополам вызываете наконец-то такси и добираетесь до офиса.

В обед открываете любимую доставку. И там та же картина: ресторан то доступен, то нет, корзина открывается через раз, оплата зависает. В голове одна мысль: «Почему разработчики не могут все сделать нормально?». Но настоящая причина глубже: вы оказались в мире, где приложения больше не умеют подстраиваться под нагрузку.

На следующей неделе — в командировку в Питер. Пытаетесь купить билет на поезд — сайт падает. Не из-за огромного спроса, а потому, что нагрузку никто не распределяет автоматически.

Вечером приходите домой, включаете фильм — та же история. Плеер то работает, то зависает. Где-то в дата-центре один большой сервис пытается обслужить всех сразу, и у него просто нет сил. Раньше так и было: вручную перебрасывали трафик между серверами. Ночами, под кофе, чтобы хоть как-то пережить пик.

Если объяснять простыми словами: монолитный сервис — это один огромный кусок кода, который работает одним блоком. Если внутри ломается хотя бы маленькая часть падает все приложение целиком.

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

Заходите в App Store или Google Play — там пусто. И так не один день, не неделю, и даже не месяц. Никто ничего не выкатывает, потому что любое изменение превращается в проблему. Каждый релиз — целое событие: куча согласований, обязательная остановка сервиса, письма пользователям о недоступности приложения с такого-то по такое-то время.

Если что-то пойдет не так, придется срочно откатываться. А повторно выпускать обновление можно будет только следующей ночью — когда нагрузка минимальна и невелик шанс задеть пользователей.

В какой-то момент до вас доходит: это не глобальный сбой, не авария, не атака. Так все и работает в мире, где нет автоматического масштабирования, микросервисов и распределенных систем. Каждое приложение — цельная махина. Упало — значит, упало все.

Самое интересное, что это было нормой до появления Kubernetes. Постоянные падения. Ночные релизы. Встречи под лозунгом «Выходим на прод, крестимся». Инженеры, которые сидели до утра, потому что обновить что-то без остановки сервиса было невозможно.

И вот в этот странный день, наблюдая весь хаос, вы впервые понимаете, насколько тихо Kubernetes поменял мир. Он стал фундаментом, который никто не видит, но который держит огромный пласт стабильности.

Kubernetes решает все эти проблемы очень понятными способами.

Он умеет запускать сразу много экземпляров одного и того же сервиса и распределять между ними нагрузку. Если пользователей становится больше, он поднимает еще несколько копий. Если меньше — убирает лишние. И все это без человеческого участия.

Kubernetes следит за состоянием сервисов: если какая-то часть приложения зависла или упала, он просто поднимает новую. Не нужно будить дежурного инженера и что-то перезапускать вручную.

Еще он позволяет раскладывать большие системы на маленькие кусочки — микросервисы — и обновлять их по отдельности. Не все приложение целиком, а только ту часть, в которой что-то изменили.

Поэтому сегодня можно выкатывать обновления хоть в пиковые часы — никто этого не заметит. Технология дает возможность переключать трафик так, что пользователи не видят ни перерывов, ни ошибок. Одна версия работает, другая выкатывается рядом, и когда все готово — кубер просто плавно переводит поток на новую. За счет этого исчезают ночные релизы, постоянные падения и бесконечные «А вдруг что-то сломаем».

Сейчас мы живем в мире, где приложения сами распределяют нагрузку, сервисы перестают быть хрупкими и становятся надежными рабочими системами, а обновления проходят спокойно, без танцев вокруг сервера (ладно, почти без танцев…).

И иногда, чтобы почувствовать масштаб изменений, достаточно просто задать себе один простой вопрос: «А что, если завтра Kubernetes исчезнет?».


Ну хорошо, если честно, то все не так драматично. Половина сервисов до сих пор живет без кубера и выглядит вполне бодро. Это был всего лишь сон. Можно спокойно спать дальше, ведь мир пока не развалился :)

To be continued…

Автор: Евгений Саркисян, менеджер проектов «Лаборатории Числитель»

Комментарии (18)


  1. lexnekr
    26.12.2025 09:51

    Глупости.

    Во-первых, помимо k8s есть и другие средства оркестрации контейнеров: podman, openshift, ...

    Во-вторых, подстраиваться под нагрузку можно вполне себе и виртуальными серверами (добавляя/убавляя сервера в пул балансировки, добавляя им ресурсов или просто поднимая новые экземпляры нужных сервисов на сервере, погасив ненужные). В конце концов, обычно в Кубере сколько ресурсов выделили, столько и используют, далеко не все динамически добавляют/убавляют ресы.

    Микросервисы на виртуалках тоже прекрасно живут.

    Я уже молчу о том, что shared-хостинги давным-давно были придуманы, задолго до кубера и прекрасно распределяли ресурсы (причём ещё и овер-селлинг успешно умели).


    1. SignFinder
      26.12.2025 09:51

      Во первых - Openshift создан на базе кубера. Не было бы k8s, не было бы и openshift

      Во-вторых - подман и докер - вообще не оркестраторы.


    1. gurlov
      26.12.2025 09:51

      Podman не оркестратор, под капотом OpenShift - k8s. Оркестраторы не на базе k8s конечно есть, но кажется, их очень мало используют, относительно k8s


  1. sabay
    26.12.2025 09:51

    Микросервисы не обязаны быть связаны с k8s и даже не обязаны быть построены как докер образы. Система деплоя отслеживания и балансировки экземпляров вполне строится на базе скриптов и к примеру HAProxy . Работает стабильно и в пределе даже не требует виртуализации. Да больше надо строить самому - но не так сложно как думают привыкшие к k8s. Хотя в k8s конечно удобнее и быстрее строить.


  1. alexs963
    26.12.2025 09:51

    До написания кубера, ИТ не существовало, понятно.


  1. Sabirman
    26.12.2025 09:51

    Да обычно упирается в БД, а она как раз-таки кубером не масштабируется. Так что сомнительная картина.


    1. SignFinder
      26.12.2025 09:51

      Расскажите это операторам kubernetes. Масштабируются и вертикально и горизонтально и шардами


      1. heejew
        26.12.2025 09:51

        Ну это в теории все красиво, для небольших сервисов. Но что-то я пока не видел, чтобы крупные конторы засунули свой жирный инстанс оракл в кубер ) Его вообще стараются не трогать лишний раз. Или у вас есть примеры?


        1. SignFinder
          26.12.2025 09:51

          Я всего лишь сделал вам замечание, что ваше же утверждение "БД, а она как раз-таки кубером не масштабируется" является неверным.


          1. Atorian
            26.12.2025 09:51

            Можно суп пытаться ножом есть. Технически вы справитесь. Наедитесь ли вы? Вряд ли.
            Еще можно с JS сравнить - видели мем про JS Good Parts и Definitive Guide?
            Кубер это попытка все впихнуть в одно решение, хотя незачем было и пытаться.


  1. hellosamurai
    26.12.2025 09:51

    На самом деле статья занятная. Она про то что некоторые современные инженеры совершенно не представляют как в действительности работает железо и сеть, каким образом распределяется нагрузка и как строить распределенные системы, где даже отказ одного дата-центра не приведёт к даунтайму. У них вместо знания технологий один ответ - Kubernetes, магия там внутри, он решает все наши проблемы и даже немного больше. Большая беда конечно когда кубер магия перестаёт работать при определённой возросшей нагрузке, и тогда автор просыпается и проводит бессонную ночь, судорожно выясняя как в действительности магия устроена, если он вообще в состоянии это понять. Надо не искать серебряную пулю, а все-таки изучать как устроен кубер, и как все тоже самое можно спокойно повторить руками на железе или виртуалках, тогда возможно это вам сэкономит время, деньги, а ещё сбережёт драгоценные нервы.

    Конечно, быть техно-жрецом здорово, но призываю вас быть скучным профессионалом, который каждую систему стремится разобрать на гайки, чтобы понять, как она в действительности функционирует.


    1. zVlad909
      26.12.2025 09:51

      Поставил Вам плюсик.

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

      В быстроменяющейся обствновке вручную можно не успеть.

      А что разве то как устроен Кубер нигде не описано? Это черный ящик? Я в январе пойду на курсы Микрософр по ихнему Куберу (AKS) и пока у меня нет ответа на этот вопрос.

      Из того что я знаю про проблематику управления нагрузками ожидал бы наличие обратной связи управляющего компонента от управляемых объектов. Есть ли такая связь у Кубера?

      Спасибо.


  1. MEGA_Nexus
    26.12.2025 09:51

    Но все сервисы вдруг начали работать так, как работали в те времена, когда про Kubernetes еще никто не слышал.

    Это были времена стабильности и надёжности, где каждый знал, как всё работает изнутри и как всё правильно настроить.

    Вы выходите из дома, вызываете такси — и сразу что-то не так. Приложение открылось, но карта не грузится. Стоимость скачет каждые десять секунд. Машины то появляются, то исчезают. С горем пополам вызываете наконец-то такси и добираетесь до офиса.

    Это скорее описание текущего состояния инфраструктуры. Навайбкодили что-то, а потом этот результат херак и сразу в продуктивный кубернетес задеплоили ))))


  1. Atorian
    26.12.2025 09:51

    Великолепно все было бы. Может даже лучше. Кто нибудь придумал бы систему получше. Небыло бы Арго. И других штук решающих проблемы арго.


  1. Atorian
    26.12.2025 09:51

    Кубер из нового добавил только баланс контейнеров по железу. Остальное существовало и без него в том или ином виде.


  1. hddn
    26.12.2025 09:51

    Hasicorp Nomad такой: ну да ну да пошёл я нахер...


  1. jingvar
    26.12.2025 09:51

    Хоть и люто ненавижу, но вообще про pacemaker k8s поклонение слышало? Вот прям до кубера никто не решал задач скейла, ha, балансировки да?


    1. Wernisag
      26.12.2025 09:51

      Именно так. И эти задачи может решить только кубер. Слава ему