Привлекательность наиболее популярной программы оркестрирования контейнеров в облаках возросла благодаря добавлению новых возможностей.
Если вы используете контейнеры в производственной системе, то знаете, что вам необходимы инструменты DevOps для управления ими. Для многих компаний такой программой является Kubernetes. Только что вышла новейшая версия 1.7 этого быстро развивающегося пакета с открытым исходным кодом для оркестрирования контейнеров. Всего через три месяца после того, как разработчики выпустили Kubernetes 1.6.
Вы не слышали о Kubernetes? Еще услышите. Наташа Вудс, старший PR-менеджер фонда Linux Foundation, отмечает: «Что общего между Wink, Ancestry.com, Box, Buffer, GolfNow и Ticketmaster? Способ использования ими инфраструктуры. Беря пример с гигантов вроде Google, эти компании применяют технологию оркестрирования контейнеров Kubernetes».
Помимо этих компаний средства в Kubernetes вложили Red Hat, Oracle, IBM и Microsoft, если назвать только некоторые. Из всех крупных игроков облачного рынка лишь Amazon Web Services (AWS) взирает на эту технологию со стороны. Это не случайно. Помимо использования технических преимуществ Kubernetes компании применяют этот софт, чтобы попытаться подорвать доминирование AWS на облачном рынке.
Новый этапный релиз добавляет функции безопасности, хранения и расширяемости, делая данный инструмент DevOps еще более подходящим для корпоративных клиентов. Луис Пабон, технический руководитель разработки Kubernetes в компании CoreOS, написал в блоге, что эта новая версия не просто добавляет новые функции, но «продолжает конструирование новых интерфейсов, чтобы сделать Kubernetes более расширяемой при более надежном ядре... Ее конечной целью является сделать так, чтобы разработчики могли развертывать новые функции, базирующиеся на стабильном, многофункциональном ядре системы Kubernetes, позволяя добавлять новые функции по запросу».
Для повышения расширяемости в Kubernetes 1.7 имеются две новые функции. Первая — агрегирование API-интерфейсов в процессе исполнения, что позволяет опытным пользователям добавлять к своему кластеру уже готовые, созданные сторонними разработчиками или пользователями API-интерфейсы в стиле Kubernetes.
Другая — интерфейс Container Runtime Interface (CRI). Он усилен новыми процедурами удаленного вызова, которые могут извлекать метрики контейнеров из среды исполнения. Опубликованы результаты проверочных тестов CRI. А теперь доступна альфа-версия интеграции с контейнерами, которая поддерживает управление жизненным циклом базовой капсулы и образом.
Среди других усовершенствований отметим следующие, разделив их на тематические группы.
Безопасность:
- API-интерфейс Network Policy переведен в категорию стабильных. Сетевая политика, реализованная в виде сетевого плагина, позволяет пользователям определять и применять правила, управляя которыми капсулы могут обмениваться информацией друг с другом;
- новые дополнения в виде плагинов авторизации узлов и контроля доступа ограничивают допуск кублета (kubelet) к секретам, капсулам и другим объектам, находящимся в его узле;
- Encryption for Secrets и другие ресурсы etcd доступны теперь в виде альфа-версии;
- самонастройка Kubelet TLS теперь поддерживает ротацию сертификатов клиента и сервера;
- журналы аудита, сохраняемые сервером API, теперь настраиваются в более широких пределах и могут быть расширены благодаря поддержке фильтрации событий и вебхукам. Кроме того они предоставляют более полные данные для аудита системы.
Задачи с запоминанием состояний:
- StatefulSet Updates — это бета-версия новой функции в релизе 1.7, позволяющей автоматически обновлять приложения с запоминанием состояний, такие как Kafka, Zookeeper и etcd, используя несколько стратегий обновления, включая непрерывные обновления;
- StatefulSets теперь также поддерживает более быстрые масштабирование и запуск приложений, которые не требуют упорядочивания посредством Pod Management Policy. Это может значительно повысить производительность.
- Local Storage (альфа-версия) была одной из наиболее часто требуемых функций для приложений с запоминанием состояний. Теперь пользователи могут получать доступ к локальным томам хранения через стандартный интерфейс PVC/PV и StorageClasses в StatefulSets.
- DaemonSets, которая создает одну капсулу на узел, уже имеет функцию обновления, а в релизе 1.7 приобрела функции интеллектуального отката и сохранения истории;
- новый плагин StorageOS Volume обеспечивает высокодоступные постоянные тома в масштабе кластера из системы хранения локального или подключенного узла.
Наконец, имеются альфа-версии двух функций:
- внешние контроллеры допуска предоставляют различные варианты добавления специальной бизнес-логики к серверу API для изменения объектов при их создании и проверку политики;
- Federated Resource Placement на базе политики, которая обеспечивает политики размещения для федеративного кластера, основываясь на запросах клиента, касающихся требований регуляторов, цен или производительности.
Сложите все это вместе, и у предприятий, уже связавших себя с использованием контейнеров, будет еще больше причин управлять своими облачными приложениями XXI века.