Platform PaaS open-source Cozystack 1.4, yang dibangun di atas Kubernetes, kini tersedia. Proyek ini bertujuan untuk menyediakan platform siap pakai bagi penyedia hosting dan kerangka kerja untuk membangun cloud privat dan publik. Platform ini diinstal langsung di server dan mencakup semua aspek persiapan infrastruktur untuk menyediakan layanan terkelola. Cozystack memungkinkan Anda untuk meluncurkan dan menyediakan klaster Kubernetes, basis data, dan mesin virtualKode platform tersedia di GitHub dan didistribusikan di bawah lisensi Apache-2.0.
Platform ini mencakup implementasi infrastruktur jaringan (fabric) sumber terbuka berbasis Kube-OVN dan menggunakan Cilium untuk pengorganisasian service mesh dan MetalLB untuk pengumuman layanan. Penyimpanan diimplementasikan pada LINSTOR, yang menawarkan ZFS sebagai lapisan penyimpanan dasar dan DRBD untuk replikasi. Termasuk juga tumpukan pemantauan yang telah dikonfigurasi sebelumnya berdasarkan VictoriaMetrics dan Grafana. Untuk meluncurkan mesin virtual Platform ini menggunakan teknologi KubeVirt, yang memungkinkan Anda menjalankan mesin virtual klasik langsung di dalam kontainer Kubernetes dan sudah memiliki semua integrasi yang diperlukan dengan Cluster API untuk meluncurkan klaster Kubernetes terkelola di dalam klaster Kubernetes bare-metal. Di dalam platform ini, Anda dapat menyebarkan Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics, dan layanan lainnya hanya dengan sekali klik.
Fitur-fitur utama di Cozystack 1.4.0:
- Antarmuka manajemen baru berbasis proyek cozystack-ui telah diperkenalkan. Stack openapi-ui dan BFF lama telah digantikan dengan frontend yang dibangun di atas React 19 dan TypeScript, yang bekerja langsung dengan API Kubernetes. Selain itu, antarmuka ini sekarang mendukung URL VNC WebSocket dinamis untuk mesin virtual, branding runtime melalui ConfigMap, membaca ApplicationDefinition untuk katalog aplikasi, dan mengalihkan URL /openapi-ui/* lama.
- Penyimpanan persisten telah diimplementasikan untuk node pekerja di klaster penyewa. VM node pekerja sekarang menggunakan disk PVC melalui KubeVirt dataVolumeTemplates, bukan emptyDisk. Ini memastikan bahwa sertifikat kubelet, kubeconfig, dan status containerd tetap terjaga setelah VM dihidupkan ulang. Bidang ephemeralStorage telah diganti namanya menjadi diskSize, dan pengaturan storageClass telah ditambahkan pada tingkat NodeGroup. Nilai lama secara otomatis dikonversi selama migrasi.
- Skema preset sumber daya baru telah ditambahkan, serupa dengan tipe mesin virtual yang digunakan oleh penyedia layanan cloud. Preset dijelaskan dalam format berikut: . , di mana seri t1, c1, s1, u1, dan m1 mendefinisikan rasio CPU dan memori yang berbeda, dan ukurannya berkisar dari nano hingga 4xlarge. Total ada 40 varian yang tersedia. Nama preset lama disimpan sebagai alias lama dan secara otomatis dimigrasikan tanpa mengubah batasan CPU dan memori yang sebenarnya.
- Sistem pencadangan deklaratif untuk aplikasi terkelola telah diperluas. Pengontrol strategi pencadangan sekarang mendukung strategi untuk PostgreSQL, MariaDB, ClickHouse, dan FoundationDB. Dukungan sekarang tersedia untuk BackupClass, Plan, BackupJob, dan RestoreJob, bersama dengan pencadangan terjadwal dan ad-hoc, pemulihan di tempat, dan pemulihan ke pemulihan. Data diunggah ke penyimpanan objek yang kompatibel dengan S3, dan kredensial dikirimkan melalui Kubernetes Secret.
- Paket sistem hami opsional telah ditambahkan dengan HAMi 2.8.1 untuk akses bersama ke GPU NVIDIA di klaster penyewa. Beban kerja pengguna dapat meminta sumber daya dari nvidia.com/gpu, nvidia.com/gpumem, dan nvidia.com/gpucores, memungkinkan vGPU untuk dibagi di beberapa pod. Mengaktifkan ini dilakukan melalui parameter hami.enabled dan memerlukan NVIDIA GPU Operator.
- Pengaturan publishing.proxyProtocol terpadu telah ditambahkan untuk mengaktifkan protokol proxy pada host yang menjalankan ingress-nginx. Saat diaktifkan, Ouroboros akan secara otomatis diimplementasikan, menghilangkan masalah NAT hairpin untuk permintaan klaster ke nama publiknya. Untuk klaster penyewa, add-on addons.ouroboros.enabled tersedia.
- Pengaturan pembuatan HelmRelease telah ditambahkan ke cozystack-operator: interval, interval percobaan ulang, batas waktu instalasi, batas waktu peningkatan, dan riwayat maksimum. Strategi percobaan ulang telah diubah menjadi RetryOnFailure, dan batas waktu dapat ditentukan untuk masing-masing aplikasi melalui anotasi release.cozystack.io/helm-install-timeout. Ini menghilangkan sejumlah masalah dengan memulai klaster penyewa dari kondisi dingin.
- Untuk node pekerja Kubernetes penyewa, reservasi sumber daya kubelet untuk CPU dan memori dihitung secara otomatis. Anotasi cluster-autoscaler sekarang mencerminkan sumber daya yang dialokasikan, bukan total CPU dan memori.
- Komponen platform inti berikut telah diperbarui: Talos 1.13.0, cert-manager 1.20.2, Cilium 1.19.3, NVIDIA GPU Operator 26.3.1, etcd-operator 0.4.3, KubeVirt 1.8.2, cozy-proxy 0.3.0, dan linstor-csi 1.10.6. Paket baru telah ditambahkan: HAMi 2.8.1 dan Ouroboros 0.7.2.
- Diagnostik yang lebih baik: cozyreport sekarang mengumpulkan informasi tentang Flux, cert-manager, lingkungan host, Aplikasi, ApplicationDefinition, dan sumber daya Tenant, serta menghasilkan file summary.txt dengan ringkasan singkat masalah terkini. Dasbor Grafana dan aturan pengumpulan data untuk pemantauan GPU telah ditambahkan.
- Perbaikan bug telah diimplementasikan di MongoDB, Kafka, tenant Kubernetes bootstrap, etcd, Velero, Kamaji, LINSTOR, SeaweedFS, Harbor, objectstorage-controller, API, dan komponen lainnya. Kerentanan IDOR pada handler TenantNamespace Get dan Watch telah diperbaiki di API.
Saat melakukan peningkatan, harap perhatikan bahwa node pekerja klaster penyewa akan diganti secara berurutan satu kali karena transisi ke disk PVC persisten. Mesin virtual KubeVirt yang berjalan sebelum peningkatan platform akan memerlukan reboot dingin setelah peningkatan ke KubeVirt 1.8.2, karena migrasi langsung proses virt-launcher yang lebih lama mungkin gagal karena perubahan versi QEMU. Selain itu, parameter PostgreSQL sekarang diketik dan diperiksa terhadap daftar penolakan, dan cert-manager 1.20 meluncurkan kontainer dengan UID/GID 65532 secara default.
Sumber: opennet.ru
