0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: kubernetes, кубер, kuber</p>
1
<p>Теги: kubernetes, кубер, kuber</p>
2
<p><strong>Kubernetes</strong>- это runtime для для написания распределенных инфраструктурных приложений с использованием<a>Operator pattern</a>, плюс оркестратор контейнеров.</p>
2
<p><strong>Kubernetes</strong>- это runtime для для написания распределенных инфраструктурных приложений с использованием<a>Operator pattern</a>, плюс оркестратор контейнеров.</p>
3
<h3>Ключевые составляющие:</h3>
3
<h3>Ключевые составляющие:</h3>
4
<ol><li>Хранилище описаний объектов.</li>
4
<ol><li>Хранилище описаний объектов.</li>
5
<li>Модель нотификаций об изменениях как описаний, так и самих объектов.</li>
5
<li>Модель нотификаций об изменениях как описаний, так и самих объектов.</li>
6
<li>Готовые простые инструменты для работы с хранилищем и событиями.</li>
6
<li>Готовые простые инструменты для работы с хранилищем и событиями.</li>
7
<li>Мутноватый, но в целом неплохой stdlib для того, чтобы это было применимо к реальным вещам (запуск контейнеров, модель прав доступа и ограничений ресурсов и т.д.).</li>
7
<li>Мутноватый, но в целом неплохой stdlib для того, чтобы это было применимо к реальным вещам (запуск контейнеров, модель прав доступа и ограничений ресурсов и т.д.).</li>
8
<li>Встроенный оркестратор контейнеров, за счет которого появляется возможность через эти механизмы достраивать самого себя.</li>
8
<li>Встроенный оркестратор контейнеров, за счет которого появляется возможность через эти механизмы достраивать самого себя.</li>
9
</ol><p>Иными словами, это<strong>state-machine</strong>, интегрированная с оркестратором. За счет этого у него появляются свойства, которые по-отдельности отсутствуют как у оркестраторов, так и у state-machine.</p>
9
</ol><p>Иными словами, это<strong>state-machine</strong>, интегрированная с оркестратором. За счет этого у него появляются свойства, которые по-отдельности отсутствуют как у оркестраторов, так и у state-machine.</p>
10
<p><strong>Из этого сразу вытекает много особенностей</strong>:</p>
10
<p><strong>Из этого сразу вытекает много особенностей</strong>:</p>
11
<ol><li>Этот рантайм нужно уметь запускать и поддерживать, и это не очень тривиально.</li>
11
<ol><li>Этот рантайм нужно уметь запускать и поддерживать, и это не очень тривиально.</li>
12
<li>Много внутренностей рантайма видны пользователю, хотя никогда не будут использованы (повышенная когнитивная нагрузка).</li>
12
<li>Много внутренностей рантайма видны пользователю, хотя никогда не будут использованы (повышенная когнитивная нагрузка).</li>
13
<li>Достаточно сложный пользовательский интерфейс - интерфейс к рантайму/API, а не к пользовательской функциональности (повышенная когнитивная нагрузка).</li>
13
<li>Достаточно сложный пользовательский интерфейс - интерфейс к рантайму/API, а не к пользовательской функциональности (повышенная когнитивная нагрузка).</li>
14
<li>Средства программирования под него достаточно скудные - наиболее распространены препроцессоры/шаблонизаторы (повышенная когнитивная нагрузка и вероятность ошибок). Высокоуровневые есть (<strong>Operator pattern</strong>), но их мало кто "умеет".</li>
14
<li>Средства программирования под него достаточно скудные - наиболее распространены препроцессоры/шаблонизаторы (повышенная когнитивная нагрузка и вероятность ошибок). Высокоуровневые есть (<strong>Operator pattern</strong>), но их мало кто "умеет".</li>
15
<li>Большое число "знающих кубер" умеют лишь работать с его API и писать под него только на препроцессоре.</li>
15
<li>Большое число "знающих кубер" умеют лишь работать с его API и писать под него только на препроцессоре.</li>
16
<li>Чаще всего интерфейс для команд разработки к нему останется на уровне "сложные и непонятные API, завернутые в протекающую абстракцию", либо "обратитесь к своему девопс-инженеру и он вам все сделает".</li>
16
<li>Чаще всего интерфейс для команд разработки к нему останется на уровне "сложные и непонятные API, завернутые в протекающую абстракцию", либо "обратитесь к своему девопс-инженеру и он вам все сделает".</li>
17
</ol><p><strong>Из плюсов</strong>:</p>
17
</ol><p><strong>Из плюсов</strong>:</p>
18
<ol><li>Сейчас много инфраструктурного софта разрабатывается с расчетом того, что будет ставиться в кубер (это минус софту, но плюс куберу).</li>
18
<ol><li>Сейчас много инфраструктурного софта разрабатывается с расчетом того, что будет ставиться в кубер (это минус софту, но плюс куберу).</li>
19
<li>Есть managed варианты (для других оркестраторов это далеко не всегда так).</li>
19
<li>Есть managed варианты (для других оркестраторов это далеко не всегда так).</li>
20
<li>Оркестратор мощнее, чем аналоги.</li>
20
<li>Оркестратор мощнее, чем аналоги.</li>
21
<li>Модульный и его можно расширять, наверное, бесконечно (если вам это нужно и вы это умеете).</li>
21
<li>Модульный и его можно расширять, наверное, бесконечно (если вам это нужно и вы это умеете).</li>
22
<li>Большое сообщество как в плане найма, так и поддержки.</li>
22
<li>Большое сообщество как в плане найма, так и поддержки.</li>
23
<li>В него нативно интегрируются<a>Открытые стандарты</a>.</li>
23
<li>В него нативно интегрируются<a>Открытые стандарты</a>.</li>
24
</ol><h3>Главные условия использования Kubernetes:</h3>
24
</ol><h3>Главные условия использования Kubernetes:</h3>
25
<p>1.Оценить в числах экономику использования (в т.ч. продуктивности использования программистами и поддержки) - как затраты, так и преимущества/ 2.Спроектировать платформу, которая на нем будет строиться, или заложить точки расширения для ее строительства в будущем: a)<strong>Инфраструктурные слои</strong>: - инструменты управления для каждого слоя; - расположение кода для каждого слоя; - способы раскатки каждого слоя; - зоны ответственности команд за тот или иной слой. 3.Доработать процессы разработки<strong>продуктовых</strong>команд под использование кубера: - интерфейсы к платформе для команд (деплой, отладка, мониторинг логирование). Не путать интерфейсы и инструменты; - процесс разворачивания песочниц для команд; - прочие рабочие процессы команд (обновление приложения в песочнице, отладка приложения в песочнице, хотфиксы приложения в песочнице и т.д.).</p>
25
<p>1.Оценить в числах экономику использования (в т.ч. продуктивности использования программистами и поддержки) - как затраты, так и преимущества/ 2.Спроектировать платформу, которая на нем будет строиться, или заложить точки расширения для ее строительства в будущем: a)<strong>Инфраструктурные слои</strong>: - инструменты управления для каждого слоя; - расположение кода для каждого слоя; - способы раскатки каждого слоя; - зоны ответственности команд за тот или иной слой. 3.Доработать процессы разработки<strong>продуктовых</strong>команд под использование кубера: - интерфейсы к платформе для команд (деплой, отладка, мониторинг логирование). Не путать интерфейсы и инструменты; - процесс разворачивания песочниц для команд; - прочие рабочие процессы команд (обновление приложения в песочнице, отладка приложения в песочнице, хотфиксы приложения в песочнице и т.д.).</p>
26
<p>Проектировать и реализовывать необходимо одновременно как продакшн, так и песочницы. И то, и другое может быть как простой, так и сложной задачей в зависимости от конкретного случая. Если не реализовать песочницы, они никогда в полной мере не будут реализованы, а разработчики будут страдать, и их продуктивность работы будет снижена.</p>
26
<p>Проектировать и реализовывать необходимо одновременно как продакшн, так и песочницы. И то, и другое может быть как простой, так и сложной задачей в зависимости от конкретного случая. Если не реализовать песочницы, они никогда в полной мере не будут реализованы, а разработчики будут страдать, и их продуктивность работы будет снижена.</p>
27
<p>Для успешности использования Kubernetes необходим человек, который даст ответ на все эти вопросы.</p>
27
<p>Для успешности использования Kubernetes необходим человек, который даст ответ на все эти вопросы.</p>
28
<p><em>Больше полезных материалов смотрите в<a>моем блоге</a>.</em></p>
28
<p><em>Больше полезных материалов смотрите в<a>моем блоге</a>.</em></p>
29
29