Наиболее популярная программа оркестрирования контейнеров Kubernetes развивается с огромной скоростью. В то же время в версии 1.10 достигнута стабильность функций в четырех важнейших областях — агрегирование API, хранение, безопасность и взаимодействие с сетью, пишет Стивен Воан-Николс на портале ZDNet.

В частности, появились альфа-версия внешнего поставщика учетных данных для клиента на языке Go, бета-версия переключения сервиса DNS при установке на CoreDNS, а также бета-версия интерфейса CSI (Container Storage Interface) и локальных томов долговременного хранения.

Агрегирование API (стабильная версия)

По сообщению компании CoreOS, ведущего разработчика Kubernetes, ставшей теперь подразделением Red Hat, в Kubernetes 1.10 агрегирование API перешло в разряд стабильных функций. Это позволяет разработчикам Kubernetes создавать собственные заказные API-серверы, не внося изменений в репозиторий основного кода Kubernetes. Благодаря этой функции администраторы кластеров Kubernetes могут более уверенно добавлять API сторонних разработчиков в кластеры рабочей конфигурации.

Хранение: CSI и локальное хранение (бета-версия)

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

Цель CSI заключается в создании стандартного способа написания производителями систем хранения плагинов, которые будут работать с различными инструментами оркестрирования контейнеров. Помимо Kubernetes это Docker Swarm Mode и Mesosphere. CSI обеспечивает стандартные способы динамического предоставления и отзыва томов хранения, подключения томов к узлам и их отключения, монтирования и демонтирования томов на узлах и т. д.

Долговременное (неразделяемое) управление локальным хранением находится теперь в стадии бета-версии. Оно делает подключенные локально (не через сеть) системы хранения доступными в качестве долговременных томов. Это повышает их производительность и уменьшает затраты на распределенные файловые системы и базы данных.

Релиз содержит много бета-версий обновлений Persistent Volumes. Kubernetes может теперь автоматически предотвращать удаление Persistent Volume Claims, которые используются контейнерами, и предотвращать удаление тома Persistent Volume, связанного с Persistent Volume Claim. Это помогает гарантировать, что объекты API-хранения будут удаляться корректно.

Безопасность: внешние поставщики учетных данных (альфа-версия)

Kubernetes, и без того хорошо поддававшаяся расширению, стала еще более расширяемой благодаря внешним поставщикам учетных данных kubectl. Теперь облачные провайдеры, производители и другие разработчики платформы могут выпускать бинарные плагины, осуществляющие аутентификацию для сервисов Identity and Access Management (IAM) конкретных облачных провайдеров или интегрируемые с внутренними системами аутентификации, которые не поддерживаются в Kubernetes, такими как Active Directory. Это дополняет функцию Cloud Controller Manager, появившуюся в версии 1.9.

Взаимодействие с сетью: CoreDNS как провайдер DNS (бета-версия)

В процессе установки сервисы DNS можно переключить на CoreDNS. Эта бета-версия позволит операторам кластеров изучить ее возможности. У CoreDNS меньше «движущихся частей», поскольку она представлена одним исполняемым файлом и одним процессом и поддерживает дополнительные области применения.

Прежде DNS обеспечивался kube-dns. Это была оболочка для dnsmasq, написанная на Go wrapper. После того, как в прошлом году были обнаружены уязвимости dnsmasq, разработчики Kubernetes решили пойти другим путем.

Повышение производительности (бета-версия)

В релизе 1.10 DevicePlugins API достиг стадии бета-версии, которая представляет стабильную точку интеграции GPU, высокопроизводительных сетевых интерфейсов, FPGA, Infiniband и других быстрых устройств ввода-вывода, не требуя от производителей включения в Kubernetes специального кода.

Добавлены также бета-версии других функций для улучшения поддержки приложений, требующих высокой производительности процессоров и ОЗУ. Например, политика статичного закрепления процессора предназначена для чувствительных к задержкам процессора приложений, закрепляя их за конкретными ядрами. Например, можно закрепить быстро работающий контейнер за высокоскоростными ядрами процессора. Кроме того, кластер может назначить и изолировать hugepages для больших данных и других требующих больших страниц приложений.

Kubernetes уже является самой популярной программой оркестрирования контейнеров. Улучшения в новом релизе помогут ей сохранить свои позиции. Kubernetes 1.10 можно загрузить с сайта GitHub.