This article is more than one year old. Older articles may contain outdated content. Check that the information in the page has not become incorrect since its publication.

Что нового в Cozystack v0.17

Что нового в Cozystack v0.17: Windows на виртуальных машинах, приложение для загрузки образов ВМ и веб-интерфейс для бакетов S3

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

Сегодня выходит обновлённая версия бесплатной PaaS-системы Cozystack. Построенная на Kubernetes, Cozystack состоит из множества открытых технологий и предоставляет все необходимые инструменты для запуска управляемых сервисов на собственном оборудовании. Платформа распространяется под лицензией Apache 2.0.

Cozystack использует Talos Linux в качестве основы, LINSTOR для хранилища, KubeVirt для виртуализации и Cilium + KubeOVN для сети.

Улучшения виртуализации

Старое приложение Virtual Machine было разделено на два отдельных приложения: vm-disk и vm-instance.

  • vm-disk (Virtual Machine Disk) был отделён от приложения виртуальной машины и теперь поддерживает загрузку образов из HTTP или локальных источников. При создании диска можно указать источник и тип образа — CD-ROM или классический.
  • vm-instance (Virtual Machine Instance) позволяет запускать виртуальную машину из созданных дисков.

Эта новая структура позволяет создавать виртуальные машины с несколькими дисками, устанавливать систему с CD-ROM и переключать диски между разными ВМ. Такой подход обеспечивает более гибкое управление конфигурацией дисков и виртуальных машин.

Старое приложение Virtual Machine было сохранено для совместимости и как более простой способ запуска виртуальных машин в Cozystack.

Помимо улучшений виртуализации, последний релиз вводит несколько других важных возможностей.

Параметры InstanceType и InstanceProfile

Добавлены новые параметры instanceType и instanceProfile, а также набор инстансов и профилей по умолчанию для Ubuntu, RHEL, Alpine и Windows. Теперь можно настраивать виртуальные машины с оптимальными параметрами (например, включать TPM, использовать устройства virtio или tablet-pointer) в зависимости от операционной системы. Вместо ручного указания ресурсов для ВМ можно использовать стандартизированные инстансы, предназначенные для конкретных рабочих нагрузок.

Эти типы инстансов также распространяются на Kubernetes, обеспечивая более удобное планирование групп узлов.

Прокси для загрузки образов CDI

В ingress добавлена возможность включить проксирование для загрузки образов с локальных машин, а CDI (Containerized Data Importer) обновлён для лучшей совместимости с блочными устройствами. Ранее загрузка образов для LINSTOR с помощью утилиты virtctl была недоступна, но мы решили эту проблему и отправили патч в апстрим LINSTOR.

Поддержка виртуальных машин Windows

С новыми возможностями vm-disk и vm-instance мы протестировали установку Windows 10 и Windows Server 2025 из ISO с последующим переключением на драйверы VirtIO. Всё работает без проблем.

Веб-интерфейс для бакетов S3

При заказе бакетов S3 теперь автоматически разворачивается веб-интерфейс для доступа к ним. Можно загружать и удалять файлы, а также генерировать временные ссылки для публичного доступа.

Этот интерфейс построен на s3manager (Apache 2.0).

Улучшения системы оповещений

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

Интеграция оповещений с Telegram

Новая возможность позволяет доставлять оповещения напрямую в Telegram, включая дедупликацию для предотвращения спама оповещениями. Оповещения теперь снабжены кнопками действий, позволяющими управлять жизненным циклом каждого оповещения (например, подтвердить, устранить) прямо в интерфейсе Telegram.

Контроллер MachineHealthChecks для Kubernetes

Контроллер MachineHealthChecks интегрирован в Cluster API для мониторинга состояния узлов в кластерах Kubernetes. В случае любых проблем затронутые узлы будут автоматически переразвёрнуты.

Добавлен компонент External-DNS

Компонент external-dns теперь позволяет автоматически настраивать DNS-записи в Cloudflare. Кроме того, через API можно заказывать сертификаты с помощью DNS-метода в Cloudflare.

External-Secrets-Operator

Добавлена новая возможность синхронизации секретов с внешними системами с помощью external-secrets-operator.

Опциональные компоненты

Некоторые компоненты в бандлах теперь отключены по умолчанию. Их можно включить, передав параметр bundle-enable в конфигурации Cozystack.

Улучшенные задания инициализации для Postgres и FerretDB

Задания инициализации теперь ждут, пока база данных будет полностью готова, прежде чем вносить какие-либо изменения в конфигурацию.

Повышенная стабильность Kube-OVN

Взаимодействие с NetworkManager отключено, что устраняет проблему, из-за которой на некоторых системах это блокировало запуск контроллеров OVN.

Настройка логов для Clickhouse

Теперь логи можно перенести на отдельный том, а также настроить ротацию логов.

Обновления компонентов:

  • LINSTOR обновлён до v1.29.1
  • Talos Linux обновлён до v1.8.1
  • Cilium обновлён до v1.16.3

Благодарности

Выражаем благодарность участникам сообщества, приславшим PR для этого релиза: kingdonb, mrkhachaturov, klinch0.

Присоединяйтесь к сообществу разработчиков платформы через чат в Telegram.

Мы также проводим еженедельные встречи сообщества каждый четверг, где открыто обсуждаем развитие платформы. Подпишитесь на календарь событий по этой ссылке.