HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 О Kubernetes обычно говорят в контексте запуска и обслуживания контейнеров для разработки. На самом деле он может решить множество задач, в том числе настроить связи между контейнерами и внешней средой так, чтобы полностью контролировать жизненный цикл приложения и автоматизировать многие процессы разработки.<p>Мы пообщались с Павлом Селивановым, архитектором Yandex Cloud, и написали эту короткую статью. Расскажем, какие возможности есть у K8s, как увидеть в нём что-то большее, чем простую "запускалку контейнеров" и как это пригождается на практике. Статья будет полезна тем, кто глубоко не разбирается в Kubernetes, но хочет узнать больше о его возможностях.</p>
1 О Kubernetes обычно говорят в контексте запуска и обслуживания контейнеров для разработки. На самом деле он может решить множество задач, в том числе настроить связи между контейнерами и внешней средой так, чтобы полностью контролировать жизненный цикл приложения и автоматизировать многие процессы разработки.<p>Мы пообщались с Павлом Селивановым, архитектором Yandex Cloud, и написали эту короткую статью. Расскажем, какие возможности есть у K8s, как увидеть в нём что-то большее, чем простую "запускалку контейнеров" и как это пригождается на практике. Статья будет полезна тем, кто глубоко не разбирается в Kubernetes, но хочет узнать больше о его возможностях.</p>
2 <p>Подробнее обо всём этом мы рассказываем на курсе <a>"Kubernetes База: стартовый курс для администраторов"</a>. Если заинтересуетесь, приходите к нам учиться.</p>
2 <p>Подробнее обо всём этом мы рассказываем на курсе <a>"Kubernetes База: стартовый курс для администраторов"</a>. Если заинтересуетесь, приходите к нам учиться.</p>
3 <h2>Какие задачи по работе с контейнерами решает Kubernetes в умелых руках</h2>
3 <h2>Какие задачи по работе с контейнерами решает Kubernetes в умелых руках</h2>
4 Принято считать, что Kubernetes - это оркестратор, который может разместить контейнер на ваших серверах. Хотя по факту даже базово он решает гораздо больше задач.<p><strong>Доставка трафика внутри кластера и маршрутизация между контейнерами. </strong>При создании Kubernetes выделяет контейнеру IP-адрес, чтобы он мог "общаться" с другими контейнерами. Кроме того, существует такая абстракция, как сервис - просто зная имя сервиса, приложения внутри кластера могут обращаться друг к другу и обмениваться данными.</p>
4 Принято считать, что Kubernetes - это оркестратор, который может разместить контейнер на ваших серверах. Хотя по факту даже базово он решает гораздо больше задач.<p><strong>Доставка трафика внутри кластера и маршрутизация между контейнерами. </strong>При создании Kubernetes выделяет контейнеру IP-адрес, чтобы он мог "общаться" с другими контейнерами. Кроме того, существует такая абстракция, как сервис - просто зная имя сервиса, приложения внутри кластера могут обращаться друг к другу и обмениваться данными.</p>
5 <p><strong>Доставка трафика снаружи кластера. </strong>Часто к запущенному на серверах приложению нужно обеспечить доступ какому-нибудь внешнему пользователю. K8s решает и этот вопрос с помощью Ingress.</p>
5 <p><strong>Доставка трафика снаружи кластера. </strong>Часто к запущенному на серверах приложению нужно обеспечить доступ какому-нибудь внешнему пользователю. K8s решает и этот вопрос с помощью Ingress.</p>
6 <p><strong>Разграничение доступа. </strong>Никто не городит целый кластер Kubernetes, чтобы запустить одно приложение. Скорее всего, есть несколько приложений или микросервисов. И с ними работают разные команды разработки и эксплуатации. Им нужно как-то выдать доступ к этой архитектуре, причём разграниченный, чтобы команды не мешали друг другу. У Kubernetes для этого есть неймспейсы, которые позволяют делить окружение в рамках одного кластера. Можно раздавать права на неймспейсы или конкретные объекты, вводить политики безопасности, выделять неймспейсам конкретное количество ресурсов и заранее определять, с какими ресурсами будут запускаться контейнеры.</p>
6 <p><strong>Разграничение доступа. </strong>Никто не городит целый кластер Kubernetes, чтобы запустить одно приложение. Скорее всего, есть несколько приложений или микросервисов. И с ними работают разные команды разработки и эксплуатации. Им нужно как-то выдать доступ к этой архитектуре, причём разграниченный, чтобы команды не мешали друг другу. У Kubernetes для этого есть неймспейсы, которые позволяют делить окружение в рамках одного кластера. Можно раздавать права на неймспейсы или конкретные объекты, вводить политики безопасности, выделять неймспейсам конкретное количество ресурсов и заранее определять, с какими ресурсами будут запускаться контейнеры.</p>
7 <p><strong>Взаимодействие контейнеров между собой. </strong>По умолчанию все контейнеры в кластере открыты и могут свободно взаимодействовать друг с другом, что не безопасно. Без Kubernetes нужно применять файрвол или iptables, открывать отдельные порты на нодах и серверах и только к нужным ресурсам. В K8s iptables напрямую не используется, зато есть встроенные сетевые политики, которые позволяют контейнерам обращаться только к конкретным внешним ресурсам или другим контейнерам. Также можно настроить взаимодействие между неймспейсами - например, запретить стейджевым ходить в продовые и наоборот.</p>
7 <p><strong>Взаимодействие контейнеров между собой. </strong>По умолчанию все контейнеры в кластере открыты и могут свободно взаимодействовать друг с другом, что не безопасно. Без Kubernetes нужно применять файрвол или iptables, открывать отдельные порты на нодах и серверах и только к нужным ресурсам. В K8s iptables напрямую не используется, зато есть встроенные сетевые политики, которые позволяют контейнерам обращаться только к конкретным внешним ресурсам или другим контейнерам. Также можно настроить взаимодействие между неймспейсами - например, запретить стейджевым ходить в продовые и наоборот.</p>
8 <p><strong>Хранение данных.</strong> Контейнеры - достаточно эфемерная штука, не рассчитанная на долгосрочное хранение данных. Чтобы это исправить, у Kubernetes есть Container Storage Interface, который позволяет подключать к контейнерам конкретные тома для считывания или записи данных. Причём если контейнер вдруг переедет на другую ноду, том с данными переедет за ним - K8s всё сделает сам.</p>
8 <p><strong>Хранение данных.</strong> Контейнеры - достаточно эфемерная штука, не рассчитанная на долгосрочное хранение данных. Чтобы это исправить, у Kubernetes есть Container Storage Interface, который позволяет подключать к контейнерам конкретные тома для считывания или записи данных. Причём если контейнер вдруг переедет на другую ноду, том с данными переедет за ним - K8s всё сделает сам.</p>
9 <p><strong>Хранение и распространение конфигов.</strong> Когда нужно запустить несколько инстансов одного и того же приложения, на каждый приходится доставлять один и тот же конфиг. Причём так, чтобы при изменении он обновился на уже запущенных инстансах. У Kubernetes для этой задачи есть инструмент Configmap, который всё делает автоматически.</p>
9 <p><strong>Хранение и распространение конфигов.</strong> Когда нужно запустить несколько инстансов одного и того же приложения, на каждый приходится доставлять один и тот же конфиг. Причём так, чтобы при изменении он обновился на уже запущенных инстансах. У Kubernetes для этой задачи есть инструмент Configmap, который всё делает автоматически.</p>
10 <p>Мы перечислили самые базовые вещи. Речь даже не про удобство - они необходимы для нормальной работы запущенных контейнеров. Конечно, эти задачи можно решить разными сторонними инструментами. Но гораздо удобнее грамотно использовать то, что уже есть в K8s и не требует сложных манипуляций и интеграций для настройки.</p>
10 <p>Мы перечислили самые базовые вещи. Речь даже не про удобство - они необходимы для нормальной работы запущенных контейнеров. Конечно, эти задачи можно решить разными сторонними инструментами. Но гораздо удобнее грамотно использовать то, что уже есть в K8s и не требует сложных манипуляций и интеграций для настройки.</p>
11 <h2>Kubernetes для управления инфраструктурой</h2>
11 <h2>Kubernetes для управления инфраструктурой</h2>
12 Управление контейнерами - далеко не всё, что может K8s. Кроме подов, деплойментов и сервисов в его документации описано множество других объектов, с помощью которых можно управлять всей инфраструктурой приложения. Например, существуют следующие объекты:<ul><li>Statefulset, который позволяет запустить то, что имеет состояние, то есть stateful-приложение.</li>
12 Управление контейнерами - далеко не всё, что может K8s. Кроме подов, деплойментов и сервисов в его документации описано множество других объектов, с помощью которых можно управлять всей инфраструктурой приложения. Например, существуют следующие объекты:<ul><li>Statefulset, который позволяет запустить то, что имеет состояние, то есть stateful-приложение.</li>
13 <li>Jobs, для запуска процесса, который должен выполниться один раз, допустим, миграции на базу данных. </li>
13 <li>Jobs, для запуска процесса, который должен выполниться один раз, допустим, миграции на базу данных. </li>
14 <li>Cron Jobs, для запуска процессов по расписанию.</li>
14 <li>Cron Jobs, для запуска процессов по расписанию.</li>
15 </ul>Для большинства специфичных задач в Kubernetes уже есть готовые объекты и инструменты, а если нет - их можно привнести благодаря CRD, Custom Resource Definition. Это специальный ресурс в K8s, который позволяет вносить любые данные.<p>Получается, в Kubernetes можно полностью описать всё приложение. Тогда почему бы не пойти дальше и не передать ему ещё и управление всеми объектами облака? Для этого существует проект Crossplane, который позволяет все объекты облака превратить в объекты Kubernetes - сделать объектами виртуальные машины, сеть, подсети, менеджер базы данных и все, что там есть.</p>
15 </ul>Для большинства специфичных задач в Kubernetes уже есть готовые объекты и инструменты, а если нет - их можно привнести благодаря CRD, Custom Resource Definition. Это специальный ресурс в K8s, который позволяет вносить любые данные.<p>Получается, в Kubernetes можно полностью описать всё приложение. Тогда почему бы не пойти дальше и не передать ему ещё и управление всеми объектами облака? Для этого существует проект Crossplane, который позволяет все объекты облака превратить в объекты Kubernetes - сделать объектами виртуальные машины, сеть, подсети, менеджер базы данных и все, что там есть.</p>
16 <p>Crossplane позволяет создавать виртуальные машины и сети так же, как поды или деплойменты. Kubernetes берёт предоставленное описание, внутри K8s запускается Crossplane, который идёт в облако и создаёт всё, что нужно. Таким образом Crossplane становится центральным источником управления вообще всей инфраструктурой.</p>
16 <p>Crossplane позволяет создавать виртуальные машины и сети так же, как поды или деплойменты. Kubernetes берёт предоставленное описание, внутри K8s запускается Crossplane, который идёт в облако и создаёт всё, что нужно. Таким образом Crossplane становится центральным источником управления вообще всей инфраструктурой.</p>
17 <p>При этом если нужно управлять чем-то специфическим, а в Kubernetes оператора для этого нет - его можно создать. Мы разбирали, как это сделать, на </p>
17 <p>При этом если нужно управлять чем-то специфическим, а в Kubernetes оператора для этого нет - его можно создать. Мы разбирали, как это сделать, на </p>
18 <a>открытом вебинаре "Kubernetes-оператор за час"</a>, на примере создания кастомного ресурса для команд.<p>В общем, благодаря расширяемости K8s может делать практически всё что угодно. вместо того, чтобы использовать миллион инструментов для хранения, описания и настройки инфраструктуры, можно всё делать с помощью Kubernetes - и деплоить приложение, и управлять инфраструктурой для его разработки, работы и запуска.</p>
18 <a>открытом вебинаре "Kubernetes-оператор за час"</a>, на примере создания кастомного ресурса для команд.<p>В общем, благодаря расширяемости K8s может делать практически всё что угодно. вместо того, чтобы использовать миллион инструментов для хранения, описания и настройки инфраструктуры, можно всё делать с помощью Kubernetes - и деплоить приложение, и управлять инфраструктурой для его разработки, работы и запуска.</p>
19 <h2>Почему весь мир ещё не перешёл на Kubernetes</h2>
19 <h2>Почему весь мир ещё не перешёл на Kubernetes</h2>
20 Лучше всего K8s работает там, где есть активная продуктовая разработка с командой разработчиков, которая постоянно создаёт новые сервисы или улучшает существующие. В компании с простой CRM для работы, 1С для бухгалтерии и сайтом команде админов Kubernetes для работы не пригодится.<p>Если разработка все-таки есть, но это одно простое приложение, то в K8s смысла тоже мало. Все-таки его развёртывание - достаточно сложная история, которая требует ресурсов, поддержки и определённых компетенций в компании. </p>
20 Лучше всего K8s работает там, где есть активная продуктовая разработка с командой разработчиков, которая постоянно создаёт новые сервисы или улучшает существующие. В компании с простой CRM для работы, 1С для бухгалтерии и сайтом команде админов Kubernetes для работы не пригодится.<p>Если разработка все-таки есть, но это одно простое приложение, то в K8s смысла тоже мало. Все-таки его развёртывание - достаточно сложная история, которая требует ресурсов, поддержки и определённых компетенций в компании. </p>
21 <p>Ещё есть компании, в которых много legacy-инструментов. У них всё уже настроено и в целом стабильно работает на каких-нибудь скриптах. Конечно, на поддержку и модернизацию этого может уходить много времени, но тут всё индивидуально, и, возможно, им Kubernetes не нужен.</p>
21 <p>Ещё есть компании, в которых много legacy-инструментов. У них всё уже настроено и в целом стабильно работает на каких-нибудь скриптах. Конечно, на поддержку и модернизацию этого может уходить много времени, но тут всё индивидуально, и, возможно, им Kubernetes не нужен.</p>
22 <p>Однако есть и те, кому K8s бы не помешал, но они его боятся. Причина в том, что это сложная комплексная система, в которой непросто разобраться. Плюс внедрение K8s в компании - процесс дорогой и не самый быстрый.</p>
22 <p>Однако есть и те, кому K8s бы не помешал, но они его боятся. Причина в том, что это сложная комплексная система, в которой непросто разобраться. Плюс внедрение K8s в компании - процесс дорогой и не самый быстрый.</p>
23 <p>В некоторых случаях помогает взять managed-Kubernetes в облаке - он уже развёрнут, настроен, и управлять им достаточно просто. Но его возможностей может не хватить, если есть специфичные задачи или по какой-то причине компания не может использовать облака. В таком случае нужен собственный Kubernetes, и понадобится команда инженеров, которая будет его поддерживать.</p>
23 <p>В некоторых случаях помогает взять managed-Kubernetes в облаке - он уже развёрнут, настроен, и управлять им достаточно просто. Но его возможностей может не хватить, если есть специфичные задачи или по какой-то причине компания не может использовать облака. В таком случае нужен собственный Kubernetes, и понадобится команда инженеров, которая будет его поддерживать.</p>
24 <p>Kubernetes хорош именно тем, что он стандартный. Если прийти на новое рабочее место и увидеть там K8s - сразу станет понятно, что и как работает, не придётся полгода разбираться в самописных инструментах и костылях.</p>
24 <p>Kubernetes хорош именно тем, что он стандартный. Если прийти на новое рабочее место и увидеть там K8s - сразу станет понятно, что и как работает, не придётся полгода разбираться в самописных инструментах и костылях.</p>
25 <h2>Плюсы перехода на Kubernetes и его изучения для IT-специалистов</h2>
25 <h2>Плюсы перехода на Kubernetes и его изучения для IT-специалистов</h2>
26 Kubernetes - это в первую очередь отличный инструмент, который многое может делать за технического специалиста. Павел рассказывает, что в своё время он был единственным человеком в компании, который отвечал за K8s, а все остальные задачи передали другим. И в отделе сопровождения только Павел ночью на звонок дежурного мог ответить "разберёмся утром", потому что знал, что K8s разберётся и без него. Упала нода? Kubernetes перенёс поды на соседние ноды, а сломанную ноду починим утром, спокойной ночи. Пока коллеги по звонку дежурного подрывались и шли чинить свои зоны ответственности, Kubernetes обеспечивал Павлу здоровый сон.<p>Кроме того, сегодня знание Kubernetes - это пропуск в крупные компании и на интересные вакансии. Именно знание K8s обычно требуют в вакансиях высокооплачиваемых DevOps-специалистов.</p>
26 Kubernetes - это в первую очередь отличный инструмент, который многое может делать за технического специалиста. Павел рассказывает, что в своё время он был единственным человеком в компании, который отвечал за K8s, а все остальные задачи передали другим. И в отделе сопровождения только Павел ночью на звонок дежурного мог ответить "разберёмся утром", потому что знал, что K8s разберётся и без него. Упала нода? Kubernetes перенёс поды на соседние ноды, а сломанную ноду починим утром, спокойной ночи. Пока коллеги по звонку дежурного подрывались и шли чинить свои зоны ответственности, Kubernetes обеспечивал Павлу здоровый сон.<p>Кроме того, сегодня знание Kubernetes - это пропуск в крупные компании и на интересные вакансии. Именно знание K8s обычно требуют в вакансиях высокооплачиваемых DevOps-специалистов.</p>
27 <p>Системным администраторам (или тем, кто хочет зайти в IT именно с этой стороны) стоит изучить Kubernetes и его возможности. Это можно сделать у нас в Слёрме, на курсе "</p>
27 <p>Системным администраторам (или тем, кто хочет зайти в IT именно с этой стороны) стоит изучить Kubernetes и его возможности. Это можно сделать у нас в Слёрме, на курсе "</p>
28 <a>Kubernetes База: стартовый курс для администраторов</a>".
28 <a>Kubernetes База: стартовый курс для администраторов</a>".