Доступен релиз платформы оркестровки контейнеров Kubernetes 1.24, позволяющей как единым целым управлять кластером из изолированных контейнеров и предоставляющей механизмы для развёртывания, сопровождения и масштабирования выполняемых в контейнерах приложений. Проект изначально был создан компанией Google, но затем переведён на независимую площадку, курируемую организацией Linux Foundation. Платформа позиционируется как развиваемое сообществом универсальное решение, не привязанное к отдельным системам и способное работать с любыми приложениями в любых облачных окружениях. Код Kubernetes написан на языке Go и распространяется под лицензией Apache 2.0.
Предоставляются функции для развёртывания и управления инфраструктурой, такие как ведение базы DNS, балансировка нагрузки,
распределение контейнеров по узлам кластера (миграция контейнеров в зависимости от изменения нагрузки и потребностей в сервисах), проверка работоспособности на уровне приложений, управление аккаунтами, обновление и динамическое масштабирование работающего кластера, без его остановки. Возможно развёртывание групп контейнеров с выполнением операций обновлений и отмены изменений сразу для всей группы, а также логическое разбиение кластера на части с разделением ресурсов. Имеется поддержка динамической миграции приложений, для хранения данных которых могут применяться как локальные хранилища, так и сетевые системы хранения.
Ключевые изменения в новом выпуске:
- Стабилизированы средства для отслеживания ёмкости хранилища (Storage Capacity Tracking), обеспечивающие мониторинг свободного места в разделах и передающие данные на управляющий узел для предотвращения запуска pod-ов на узлах, на которых недостаточно свободного места.
- Стабилизирована возможность расширения разделов хранилища. Пользователь может изменить размер уже существующих разделов и Kubernetes автоматически без остановки работы расширит раздел и связанную с ним файловую систему.
- Прекращена поставка runtime Dockershim, который позиционировался как временное решение для использования Docker в Kubernetes, не совместимое со штатным интерфейсом CRI (container runtime interface) и приводящее к дополнительному усложнению kubelet. Для управления изолированными контейнерами следует использовать runtime, поддерживающий интерфейс CRI, такой как containerd и CRI-O, или воспользоваться обвязкой cri-dockerd, реализующей интерфейс CRI над API Docker Engine.
- Предоставлена экспериментальная поддержка верификации образов контейнеров по цифровым подписям с использованием сервиса Sigstore, ведущего публичный лог для подтверждения подлинности (transparency log). Для предотвращения supply chain атак и подмены компонентов также обеспечено заверение цифровыми подписями связанных с релизами артефактов, в том числе всех устанавливаемых исполняемых файлов Kubernetes.
- По умолчанию в кластерах прекращено включение API, находящихся в состоянии бета-версии (добавленные в прошлых выпусках тестовые API сохранены, изменение касается только новых API).
- Реализована тестовая поддержка формата OpenAPI v3.
- Представлена инициатива по переводу плагинов для работы с хранилищами на унифицированный интерфейс CSI (Container Storage Interface) с сохранением совместимости на уровне API.
На CSI переведены плагины Azure Disk и OpenStack Cinder. - На стадию бета-тестирования переведён Kubelet Credential Provider, позволяющий динамически извлекать учётные данные для репозитория образов контейнеров через запуск плагинов, без хранения учётных данных в файловой системе узла.
- Предоставлена возможность резервирования диапазона IP-адресов для назначения сервисам. При включении данной опции кластер будет автоматически назначать сервисам только IP-адреса из заранее выделенного для каждого сервиса пула, что позволяет избежать возникновения коллизий при выдаче свободных адресов из общего набора.