Выпуск Kubernetes 1.6, системы управления кластером изолированных контейнеров

29.03.2017 21:28

Представлен релиз платформы оркестровки контейнеров Kubernetes 1.6, позволяющей как единым целым управлять кластером Linux-контейнеров, созданных с использованием таких инструментариев как Docker и rkt. Платформа обеспечивает эффективное распределение контейнеров по узлам кластера, производя миграцию в зависимости от изменения нагрузки и потребности в сервисах. Код Kubernetes написан на языке Go и распространяется под лицензией Apache 2.0.

Проект Kubernetes изначально был основан компанией Google и позиционируется как развиваемое сообществом универсальное решение, не привязанное к отдельным системам и способное работать с любыми приложениями в любых облачных окружениях. Предоставляются функции для развёртывания и управления инфраструктурой, такие как ведение базы DNS, балансировка нагрузки, проверка работоспособности на уровне приложений, управление аккаунтами, обновление и динамическое масштабирование работающего кластера, без его остановки. Возможно развёртывание групп контейнеров с выполнением операций обновлений и отмены изменений сразу для всей группы, а также логическое разбиение кластера на части с разделением ресурсов. Имеется поддержка динамической миграции приложений, для хранения данных которых могут применяться как локальные хранилища, так и сетевые системы хранения.

Kubernetes 1.6 стал первым релизом, подготовленным не под предводительством Google, а объединённой командой разработчиков. В разработке приняли участие представители компаний CoreOS, Microsoft, Red Hat, Heptio, Mirantis и Google, а также индивидуальные участники из сообщества. Основные новшества:

  • Задействовано по умолчанию распределённое хранилище параметров конфигурации etcdv3. Применение etcdv3 позволило существенно увеличить масштибруемость - Kubernetes теперь может использоваться в кластерах, насчитывающих до 5000 узлов;
  • Переведены в разряд стабильных средства для динамического выделения места в хранилище;
  • Началось бета-тестирование поддержки разграничения доступа на основе ролей (RBAC). RBAC предоставляет дополнительный уровень безопасности, позволяющий гранулировано распределять привилегии в кластере на уровне предоставления отдельным пользователям доступа к различным компонентам, контроллерам и узлам кластера.
  • Платформа избавлена от прямой зависимости от конкретных runtime для запуска контейнеров. Пользователям предоставлена возможность использования runtime, отличных от Docker, в том числе rkt и CRI-O.
  • Инструмент запуска кластера kubeadm переведён на стадию бета-тестирования. Всё сетевое взаимодействие теперь производится только через TLS. Добавлена возможность установки плагинов для авторизации и управления токенами;
  • Инструмент для объединения систем (Federation) kubefed переведён на стадию бета-тестирования. Взаимодействие с runtime контейнеров теперь производится через интерфейс CRI. По умолчанию предлагается плагин с runtime Docker-CRI;
  • Реализована возможность использования нескольких планировщиков;
  • Для узлов и групп контейнеров (pods) добавлены средства привязки (affinity);
  • Для групп контейнеров (на каждый pod) теперь можно указать как долго pod должен быть прикреплён к узлу, в случае возникновения проблем с узлом;
  • Обеспеченна предустановка StorageClass для и Azure, AWS, GCE, OpenStack и vSphere.