Управление огромным количеством контейнеров в последней версии Kubernetes стало гораздо легче.

Управлять контейнерами непросто. Судьба ваших инициатив по контейнерам зависит от того, как вы справитесь с такими программами, как Docker в режиме роя (swarm mode), Kubernetes или Mesosphere. У самой, пожалуй, популярной из них, Kubernetes, имеется новый релиз, Kubernetes 1.6, расширивший свои масштабы на 50% до кластеров из 5000 узлов. По скромным меркам это значит, что Kubernetes может одновременно управлять 25 000 контейнеров Docker.

Узел в Kubernetes является виртуальной машиной или физическим сервером. Некоторые организации используют до 500 контейнеров на узел, и это означает, что с Kubernetes вы можете управлять 2,5 млн. контейнеров. Весьма неслабо!

Этот 150-процентный прирост полного размера кластера базируется на etcd v3, хранилище параметров конфигурации проекта CoreOS. Для большей эффективности взамен JavaScript Object Notation (JSON) в нем используется gRPC, высокопроизводительный удаленный вызов процедур (RPC) с открытым исходным кодом. Поддержка JSON для концевых точек осуществляется через шлюз gRPC.

Если вам требуется более 5000 узлов или нужны узлы, охватывающие много регионов или облаков, это также возможно через Federation. Это средство позволит вам скомбинировать большое число кластеров Kubernetes и обращаться к ним через одну концевую точку с API.

Ник Чейз, руководитель Mirantis по техническим вопросам, написал, что раз «Kubernetes закрепляет позиции, то возрастает вероятность ситуаций, в которых пользователи оперируют множеством больших кластеров. Federation позволяет вам создать инфраструктуру, в которой пользователи смогут задействовать ближайший к ним кластер или кластер с наибольшими свободными ресурсами».

В этом релизе утилита командной строки kubefed переведена в статус бета-версии — вместе с улучшением поддержки кластеров на собственной площадке пользователей. Инструмент kubefed теперь автоматически конфигурирует kube-dns при присоединении кластеров и может передавать аргументы федерированным компонентам.

Также вы можете использовать Kubernetes Daemon Sets, чтобы задавать, какие узлы будут запускать конкретный набор контейнеров. Kubernetes сможет гарантировать, что это будут узлы, удовлетворяющие нужным требованиям. Вы также можете обновлять эти DaemonSets новыми образами.

Новый релиз Kubernetes также содержит улучшения безопасности. Ролевой контроль доступа (RBAC), который пока существует в бета-версии, использует для повышения безопасности четко очерченные стандартные роли для системных компонентов. Политики RBAC по умолчанию в Kubernetes 1.6 предоставляют ограниченные полномочия компонентам уровня управления, узлам и контроллерам. RBAC также позволяет администраторам кластеров избирательно предоставлять конкретным пользователям или аккаунтам сервисов тонко гранулированный доступ к определенным ресурсам на базе пространств имен.

Усовершенствования средства инсталляции kubeadm, которое тоже представлено бета-версией, касаются набора флагов командной строки и базового комплекта функций, который включает установку RBAC. В нем также используется система Bootstrap Token и улучшенные Certificates API, чтобы облегчить обеспечение безопасности контейнерного кластера.

В этом релизе появились мощные и многоцелевые конструкции, предоставляющие более широкий контроль при планировании работы «подов» (pod — группа из нескольких связанных контейнеров с общим хранилищем данных). Сюда входят правила, ограничивающие поды конкретными узлами в гетерогенных кластерах, и правила переноса или перепаковки подов при неисправностях доменов, таких как узлы, стойки и зоны. Это очень полезное обновление.

В Kubernetes была уже проделана хорошая работа в части управления хранением контейнерных данных, но теперь эти возможности стали еще лучше. В новом релизе StorageClass и выделение динамических томов позволяют создавать и удалять хранилища данных по требованию. Выделять их заранее уже не требуется.

Ко всему прочему, администраторы кластеров Kubernetes могут задавать и предоставлять внутри кластера разнородные типы памяти хранения данных. Это значит, что конечные пользователи могут уже не беспокоиться о сложности и нюансах того, как выделяется память, и им позволяется выбирать среди разнообразных опций хранения. Что касается публичных облаков, в Kubernetes теперь по умолчанию предустанавливаются системно-определяемые объекты StorageClass для AWS, Azure, Google Cloud, OpenStack и VMware vSphere.

Kubernetes 1.6 можно загрузить с GitHub и через get.k8s.io. Начиная работать с прграммой, полезно использовать имеющиеся интерактивные средства обучения. До обновления или перехода на Kubernetes также целесообразно ознакомиться с полным текстом примечаний к релизу.