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

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

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

Основные новшества:

  • Стабилизирован, включен по умолчанию и признан пригодным для широкого внедрения API Workloads, представляющий средства для запуска и управления контейнерами в кластере, как сохраняющими своё состояние между перезапусками (stateful), так и запускаемыми каждый раз с чистого листа (stateless). API разделён на группы DaemonSet, Deployment, ReplicaSet и StatefulSet, а также отдельно стабилизируемый набор (Job и CronJob) для пакетного выполнения работ;
  • Добавлена тестовая поддержка платформы Windows. Для развёртывания изолированных контейнеров в Windows применяется механизм Windows Server Containers, доступный в Windows Server 2016. Управляющие компоненты Kubernetes (API Server, Scheduler, Controller Manager и т.п.) по-прежнему могут работать только Linux, но kubelet и kube-proxy уже можно запустить в Windows Server 2016. Конечной целью является предоставление возможности развёртывания гибридных окружений, в которых в рамках единого решения могут выполняться контейнеры c Linux и Windows;
  • Добавлена экспериментальная поддержка интерфейса CSI (Container Storage Interface), в рамках которого совместно с другими проектами предпринята попытка стандартизировать плагины для поддержки различных систем хранения. CSI предоставляет единый интерфейс для выделения места, прикрепления и монтирования храналищ. Различные поставщики теперь могут поставлять плагины для интеграции со своими службами хранения без необходимости внесения изменений в кодовую базу Kubernetes;
  • Включена по умолчанию и переведена на стадию бета-разработки система валидации CRD (Custom Resource Definition);
  • Представлен альфа-выпуск интерфейса SIG Node для задействования средств аппаратного ускорения, позволяющий применять для выскопроизводительных вычислений GPU и акселераторы систем машинного обучения;
  • Добавлена альфа-поддержка установки DNS-сервера CoreDNS;
  • На стадию бета-тестирования переведён режим IPVS для kube-proxy, позволяющий повысить масштабируемость и производительность крупных кластеров.

© OpenNet