Die Version 0.17.0 der kostenlosen PaaS-Plattform Cozystack wurde veröffentlicht, die auf Kubernetes basiert. Das Projekt zielt darauf ab, Hosting-Anbietern eine fertige Plattform und ein Framework zum Aufbau von privaten und öffentlichen Clouds bereitzustellen. Die Plattform wird direkt auf Servern installiert und umfasst alle Aspekte der Infrastrukturvorbereitung für die Bereitstellung verwalteter Dienste. Cozystack ermöglicht das Starten und Bereitstellen von Kubernetes-Clustern, Datenbanken und virtuellen Maschinen. Der Quellcode der Plattform ist auf GitHub verfügbar und steht unter der Apache-2.0-Lizenz.
Talos Linux und Flux CD werden als grundlegender Technologie-Stack verwendet. Die Images mit dem Betriebssystem, dem Kernel und den erforderlichen Modulen werden im Voraus erstellt und atomar aktualisiert, was die Verwendung von Komponenten wie dkms und Paketmanagern überflüssig macht und die Stabilität gewährleistet. Es wird eine einfache Installationsmethode in einem leeren Rechenzentrum mithilfe von PXE und dem debian-artigen Installer talos-bootstrap bereitgestellt.
Die Plattform umfasst eine freie Implementierung der Netzwerk Infrastruktur (Fabric) basierend auf Kube-OVN, nutzt Cilium zur Organisation des Service-Netzwerks und MetalLB für die externe Ankündigung von Services. Der Speicher wird über LINSTOR bereitgestellt, mit der Möglichkeit, ZFS als Basisschicht für den Speicher und DRBD für die Replikation zu verwenden. Ein vorgefertigter Monitoring-Stack auf Basis von VictoriaMetrics und Grafana ist vorhanden. Zum Starten virtuellen Maschinen kommt die KubeVirt-Technologie zum Einsatz, die es ermöglicht, klassische virtuelle Maschinen direkt in Kubernetes-Containern auszuführen und bereits alle notwendigen Integrationen mit dem Cluster-API für den Betrieb verwalteter Kubernetes-Cluster innerhalb eines physischen Kubernetes-Clusters bietet.
In der neuen Version:
- In der Plattform besteht nun die Möglichkeit, virtuelle Maschinen mit mehreren Festplatten zu erstellen, Installationen von CD-ROM vorzunehmen und Festplatten zwischen verschiedenen virtuellen Maschinen zu wechseln. Die alte Anwendung „Virtual Machine“ wurde in zwei separate Anwendungen unterteilt: „vm-disk“ (Virtual Machine Disk) und „vm-instance“ (Virtual Machine Instance). Die Anwendung vm-disk unterstützt das Laden von Images über HTTP oder lokale Laufwerke; beim Erstellen einer Festplatte kann die Quelle und der Typ des Images – CD-ROM oder klassisch – angegeben werden. Die Anwendung vm-instance ermöglicht das Starten einer virtuellen Maschine aus den erstellten Festplatten. Die Verwendung der alten Anwendung Virtual Machine bleibt aus Kompatibilitätsgründen erhalten.
- Die Optionen instanceType und instanceProfile wurden hinzugefügt, ebenso wie ein Standard-Set von Instanzen und Profilen für Ubuntu, RHEL, Alpine und Windows. Es besteht die Möglichkeit, die virtuelle Maschine je nach Betriebssystem (z. B. TPM und Virtio-Geräte aktivieren, Tablet-Pointer verwenden) mit optimalen Einstellungen zu konfigurieren, während anstelle von Ressourcenangaben für virtuelle Maschinen standardisierte Instanzen verwendet werden können, die speziell für bestimmte Lasttypen entworfen sind. Die Instanztypen gelten auch für Kubernetes, was eine sinnvollere Planung der Node-Gruppen ermöglicht.
- Im Ingress wurde die Option zum Aktivieren des Proxy für das Laden von Images von lokalen Maschinen hinzugefügt, und die CDI wurde aktualisiert, um eine korrektere Funktionalität mit Blockgeräten zu gewährleisten. Es wurde die Möglichkeit implementiert, Images für LINSTOR mithilfe des Tools virtctl hochzuladen.
- Die Unterstützung für virtuelle Maschinen mit Windows wurde hinzugefügt. Mit den neuen vm-disk und vm-instance wurde die Installation von Windows 10 und Windows Server 2k15 aus ISO getestet, gefolgt von einer umschaltung auf VirtIO-Treiber.
- Beim Bestellen von S3-Buckets wird eine automatische Bereitstellung einer Web-Oberfläche für den Zugriff auf diese eingerichtet. Über die Web-Oberfläche können Dateien hoch- und heruntergeladen sowie temporäre Links für den öffentlichen Zugriff generiert werden. Die Oberfläche basiert auf s3manager, das unter der Apache 2.0 Lizenz verteilt wird.

- Alerts für FluxCD wurden hinzugefügt, die den Zustand der Releases anzeigen. Die Alerts sind strukturiert und werden nun in Kategorien unterteilt; außerdem wird im Feld Resource nun der problematische Ressourcentyp angezeigt.
- Es besteht die Möglichkeit, Alerts in Telegram mit Deduplication und Schaltflächen zur Verwaltung des Lebenszyklus jedes Alerts zu senden.
- Im Cluster-API wurde der Controller MachineHealthChecks integriert, der den Zustand der Knoten im Kubernetes-Cluster überwacht. Bei Problemen werden die Knoten automatisch neu angefordert.
- Das Component external-dns wurde hinzugefügt, das die automatische Konfiguration von DNS-Einträgen in Cloudflare ermöglicht. Darüber hinaus wurde die Möglichkeit integriert, Zertifikate über die Cloudflare-API mit der DNS-Methode anzufordern.
- Der external-secrets-operator wurde hinzugefügt, der die Synchronisierung von Geheimnissen mit externen Systemen ermöglicht.
- Es wurden optionale Komponenten eingeführt, die standardmäßig deaktiviert sind, aber über die Option bundle-enable in der Cozystack-Konfiguration aktiviert werden können.
- Die Arbeiten (Jobs) zur Initialisierung von PostgreSQL und FerretDB wurden verbessert, die jetzt warten, bis die Datenbank hochgefahren ist, bevor sie irgendwelche Konfigurationsaktionen durchführen.
- Die Stabilität von Kube-OVN wurde erhöht. Die Kommunikation mit NetworkManager wurde deaktiviert. In einigen Systemen blockierte dieses Problem den Start der OVN-Controller.
- Eine Log-Konfiguration für Clickhouse wurde hinzugefügt. Logs sollen in einen separaten Abschnitt verschoben und die Rotation konfiguriert werden.
- Die Komponenten wurden aktualisiert: LINSTOR 1.29.1, Talos Linux 1.8.1 und Cilium 1.16.3.
Quelle: opennet.ru

