HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 <p>Понимать все или хотя бы большинство возможностей, которые нам предоставляет Kubernetes в рамках своих основных манифестов очень ценно, потому что там есть действительно полезные вещи, которые можно использовать для своих приложений.</p>
1 <p>Понимать все или хотя бы большинство возможностей, которые нам предоставляет Kubernetes в рамках своих основных манифестов очень ценно, потому что там есть действительно полезные вещи, которые можно использовать для своих приложений.</p>
2 <p>Я сейчас описал всё на базе Deployment`а. То же самое касается выполнения других задач. У нас, оказывается, в кластере есть Job`ы, и на их базе можно сделать очень много всего. Например, smoke-тесты после релизов, выполнение миграции. А еще есть CronJob`ы, с помощью которых можно на базе кластера реализовывать выполнение каких-то задач по расписанию.</p>
2 <p>Я сейчас описал всё на базе Deployment`а. То же самое касается выполнения других задач. У нас, оказывается, в кластере есть Job`ы, и на их базе можно сделать очень много всего. Например, smoke-тесты после релизов, выполнение миграции. А еще есть CronJob`ы, с помощью которых можно на базе кластера реализовывать выполнение каких-то задач по расписанию.</p>
3 <p>Также важно понимать, для чего нужны StatefulSet`ы и когда они могут пригодиться. По секрету скажу:<em>они нужны не только для баз данных</em>. Как еще их применяют, будем рассказывать на Вечерней школе "Kubernetes для разработчиков".</p>
3 <p>Также важно понимать, для чего нужны StatefulSet`ы и когда они могут пригодиться. По секрету скажу:<em>они нужны не только для баз данных</em>. Как еще их применяют, будем рассказывать на Вечерней школе "Kubernetes для разработчиков".</p>
4 <p>Как я уже говорил, это возможности, которые сам Kubernetes дает, и которые можно использовать в рамках своих приложений. Например, важно знать, что есть объект ConfigMap или Secret. Если вам нужно хранить какую-то секретную информацию, вы используете Secret , а в ConfigMap можете сложить свои конфиги, и можете их обновлять независимо от приложения, и они будут доезжать к вашему приложению при обновлении ConfigMap. А если ваше приложение научится замечать изменения своих конфигов на диске, то оно может даже бесшовно релоадиться при изменении всего лишь одного ConfigMap.</p>
4 <p>Как я уже говорил, это возможности, которые сам Kubernetes дает, и которые можно использовать в рамках своих приложений. Например, важно знать, что есть объект ConfigMap или Secret. Если вам нужно хранить какую-то секретную информацию, вы используете Secret , а в ConfigMap можете сложить свои конфиги, и можете их обновлять независимо от приложения, и они будут доезжать к вашему приложению при обновлении ConfigMap. А если ваше приложение научится замечать изменения своих конфигов на диске, то оно может даже бесшовно релоадиться при изменении всего лишь одного ConfigMap.</p>
5 <p>Здорово знать, что есть еще более хитрые штуки, например, Pod Disruption Budget.</p>
5 <p>Здорово знать, что есть еще более хитрые штуки, например, Pod Disruption Budget.</p>
6 <p>Такие вещи нам позволяют управлять поведением кластера по отношению к вашему приложению в тот момент, когда ноды кластера выводятся системными администраторами на обслуживание. Это такой контракт в yaml-формате между разработчиком и системным администратором,<em>который может создать разработчик</em>.</p>
6 <p>Такие вещи нам позволяют управлять поведением кластера по отношению к вашему приложению в тот момент, когда ноды кластера выводятся системными администраторами на обслуживание. Это такой контракт в yaml-формате между разработчиком и системным администратором,<em>который может создать разработчик</em>.</p>
7 <p>Еще не могу не упомянуть про такие штуки как Ingress, Service. Хорошо понимать, что они позволяют вам сделать, как можно построить на сетевом уровне общение между своими компонентами в рамках Kubernetes. Как с помощью того же Ingress можно настроить своё приложение, его проксирование.</p>
7 <p>Еще не могу не упомянуть про такие штуки как Ingress, Service. Хорошо понимать, что они позволяют вам сделать, как можно построить на сетевом уровне общение между своими компонентами в рамках Kubernetes. Как с помощью того же Ingress можно настроить своё приложение, его проксирование.</p>
8 <p>Хорошо бы, наверное, понимать, что такое Network Policies. Здесь тема находится на стыке того, что может делать разработчик, специалист по безопасности и системный администратор. Но все же разработчикам не повредит это знание и понимание того, что можно с помощью опять же встроенных средств Kubernetes ограничивать доступ к своим приложениям, разграничивать, кто может в него попасть, кто не может. Из каких namespace`ов, из каких Pod`ов, Service`ов и так далее.</p>
8 <p>Хорошо бы, наверное, понимать, что такое Network Policies. Здесь тема находится на стыке того, что может делать разработчик, специалист по безопасности и системный администратор. Но все же разработчикам не повредит это знание и понимание того, что можно с помощью опять же встроенных средств Kubernetes ограничивать доступ к своим приложениям, разграничивать, кто может в него попасть, кто не может. Из каких namespace`ов, из каких Pod`ов, Service`ов и так далее.</p>
9 <p>И наконец, умение работать с какими-то шаблонизаторами типа Helm. Тут, думаю, читатели смогут сказать: "да это точно уже задача DevOps`ов, вы что-то от разработчиков хотите слишком много!" Но все же. Понимание, как вообще деплоить в Kubernetes с помощью Helm или с помощью kubectl, думаю тоже не будет лишним для разработчиков.</p>
9 <p>И наконец, умение работать с какими-то шаблонизаторами типа Helm. Тут, думаю, читатели смогут сказать: "да это точно уже задача DevOps`ов, вы что-то от разработчиков хотите слишком много!" Но все же. Понимание, как вообще деплоить в Kubernetes с помощью Helm или с помощью kubectl, думаю тоже не будет лишним для разработчиков.</p>
10 <p>Потому что, во-первых, специально выделенные инженеры, которые могут за вас все это написать, есть далеко не у всех. Во-вторых, DevOps-инженеров обычно всё-таки меньше, чем разработчиков. Ну и умение в случае чего написать Helm chart для своего приложения или настроить CI/CD, не дожидаясь инженеров эксплуатации, написать себе туда kubectl apply или helm upgrade, я думаю, тоже никому не повредит.</p>
10 <p>Потому что, во-первых, специально выделенные инженеры, которые могут за вас все это написать, есть далеко не у всех. Во-вторых, DevOps-инженеров обычно всё-таки меньше, чем разработчиков. Ну и умение в случае чего написать Helm chart для своего приложения или настроить CI/CD, не дожидаясь инженеров эксплуатации, написать себе туда kubectl apply или helm upgrade, я думаю, тоже никому не повредит.</p>