Выпуск Cozystack 0.33, открытой PaaS-платформы на базе Kubernetes

Доступен выпуск свободной PaaS-платформы Cozystack 0.33, построенной на базе Kubernetes. Проект нацелен на предоставление готовой платформы для хостинг-провайдеров и фреймворка для построения частных и публичных облаков. Платформа устанавливается напрямую на серверы и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять кластеры Kubernetes, базы данных и виртуальные машины. Код платформы доступен на GitHub и распространяется под лицензией Apache-2.0.

Si një pilon themelor teknologjik përdoret Talos Linux dhe Flux CD. Imazhet me sistemin, bërthamën dhe modulet e nevojshme përgatiten paraprakisht dhe përditësohen në mënyrë atomike, çka lejon shmangien e komponenteve si dkms dhe menaxheri i paketave, dhe garanton funksionimin e qëndrueshëm. Ofron një metodë të thjeshtë instalimi në një qendër të të dhënave të zbrazët me ndihmën e PXE dhe instaluesit talos-bootstrap të ngjashëm me debian. Brenda platformës është e mundur të nisin shërbime të tilla si Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics dhe të tjera me një klik.

Platforma përfshin një implementim të lirë të infrastrukturës rrjetore (fabric) на базе Kube-OVN, и использует Cilium для организации сервисной сети, MetalLB для анонса сервисов наружу. Хранилище реализовано на LINSTOR, где предлагается использование ZFS в качестве базового слоя для хранилища и DRBD для репликации. Имеется преднастроенный стек мониторинга на базе VictoriaMetrics и Grafana. Для запуска виртуальных машин используется технология KubeVirt, которая позволяет запускать классические виртуальные машины прямо в контейнерах Kubernetes и уже имеет все необходимые интеграции с Cluster API для запуска управляемых Kubernetes-кластеров внутри «железного» Kubernetes-кластера.

За последние полтора месяца команда проекта выпустила новые версии 0.31, 0.32 и 0.33. Среди изменений в данных выпусках:

  • Унифицировано управление выделением ресурсов CPU и памяти. Добавлены единые переменные конфигурации cpu-allocation-ratio и memory-allocation-ratio для ограничения ресурсов CPU и потребления памяти в виртуальных машинах под управлением KubeVirt. Переменные применяются ко всем управляемым приложениям и квотам ресурсов tenant-ов. Предустановки также учитывают коэффициенты выделения ресурсов и ведут себя так же, как явные определения ресурсов. При обновлении с более ранних версий Cozystack конфигурация ресурсов в управляемых приложениях автоматически конвертируется в новый формат.
  • Добавлена функция резервного копирования PVC в tenant-ных Kubernetes-кластерах, позволяющая администраторам как всей платформы, так и отдельных tenant-ов, создавать резервные копии и восстанавливать данные запущенных в кластерах сервисов. Для резервного копирования задействован проект Velero, а сама система требует внешнего S3-совместимого хранилища.
  • Реализована поддержка использования общих NFS-хранилищ с новым опциональным системным модулем.
  • Добавлена возможность настройки доступных CPU-сокетов для виртуальных машин через параметр resources.cpu.sockets, что позволяет назначать виртуальным машинам конкретные сокеты.
  • Добавлена поддержка использования предзагруженных golden-образов для виртуальных машин, ускоряющая подготовку за счёт ссылок на существующие образы вместо загрузки по HTTP.
  • Реализована опция exposeMethod для Ingress-NGINX в tenant-ных кластерах, которая позволяет выбирать Proxied и LoadBalancer.
  • Улучшенная поддержка Java-приложений: параметры «heap» теперь рассчитываются на основе запросов и лимитов памяти.
  • Заменён стандартный менеджер пакетов — вместо Helm теперь используется новая утилита cozypkg (обёртка вокруг Helm и Flux для локальной разработки).
  • Добавлен синхронизатор HelmRelease для системных компонентов, обеспечивающий автоматический контроль ключевых изменений конфигурации для своевременного обновления системных приложений.
  • Добавлена поддержка registry mirror в tenant-ных Kubernetes-кластерах, настраивающего containerd для tenant-ных кластеров.
  • Реализована единая маркировка дочерних объектов приложений для мониторинга через WorkloadMonitors.
  • Добавлена опция cluster-domain для переопределения домена cozy.local.
  • Добавлены правила RBAC для проброса портов в KubeVirt (SSH через virtctl).
  • Включён сбор событий и аудит-логов.
  • Реализовано резервное копирование/восстановление PostgreSQL.
  • Добавлен новый инструмент cozyreport и обеспечен сбор отчетов в CI. Теперь вся диагностическая информация сохраняется в виде сборочных артефактов.
  • Обновлены компоненты: cozykpg v1.1.0, flux-operator 0.23.0, Flux 2.6.x, Talos Linux v1.10.3, Cilium 1.17.4, MetalLB 0.15.2, Kube-OVN 1.13.13, cozy-proxy 0.2.0, Kafka Operator 0.45.1-rc1.
  • Предоставлена возможность установки Talos в Air Gap-окружениях.
  • Добавлена поддержка GPU для tenant-ных Kubernetes-кластеров. Пользователи платформы могут запускать GPU-ворклоады как в виртуальных машинах, так и в Kubernetes-кластерах.
  • Обеспечена бета-поддержка архитектуры ARM (кросс-архитектурная сборка). Система сборки переработана для поддержки мультиархитектурных бинарных файлов и контейнерных образов.
  • Расширен VerticalPodAutoscaler (VPA), который включён для большего количества компонентов Cozystack и позволяет проводить автоматическую настройку ресурсов. В частности, VPA был добавлен для control plane tenant-ных кластеров, панели управления Cozystack и etcd-operator. Все компоненты Cozystack с включенным VPA могут автоматически корректировать свои запросы CPU и памяти на основе их использования, что повышает стабильность.
  • Добавлена поддержка Gateway API в Cilium, позволяющая использовать расширенные функции маршрутизации L4/L7 через Kubernetes Gateway API.
  • Предоставлена возможность добавления собственных параметров в конфигурации Cilium для tenent-ных кластеров.
  • В контроллере Tenant HelmRelease Reconcile обеспечено распространение изменений конфигурации на рабочие нагрузки tenant-ов (гарантирует, что любой HelmRelease, определённый в tenant-е, синхронизирован с обновлениями платформы).
  • Добавлена возможность настройки коэффициента выделения CPU в KubeVirt (то, как виртуальные CPU соотносятся с физическими) через значение cpu-allocation-ratio в configmap. Администраторы могут настраивать overcommit CPU для виртуальных машин, соблюдая необходимый баланс между производительностью и плотностью.
  • Реализован экспорт виртуальных машин KubeVirt. Функция работает через VirtualMachineExport в KubeVirt и позволяет пользователям создавать снапшоты или резервные копии образов виртуальных машин.
  • Обеспечена поддержка различных классов хранилищ (storage classes) для виртуальных машин. Приложение virtual-machine позволяет выбирать любой StorageClass для системного диска виртуальной машины вместо использования жёстко заданного PVC (cм. значения systemDisk.storage и systemDisk.storageClass в конфигурации приложения).

Burimi: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster