Die Veröffentlichung der freien PaaS-Plattform Cozystack 0.37, die auf Kubernetes basiert, ist verfügbar. Das Projekt zielt darauf ab, eine fertige Plattform für Hosting-Anbieter sowie ein Framework zum Aufbau privater und öffentlicher Clouds bereitzustellen. Die Plattform wird direkt auf Servern installiert und deckt alle Aspekte der Infrastrukturvorbereitung zur Bereitstellung verwalteter Dienste ab. Cozystack ermöglicht das Starten und Bereitstellen von Kubernetes-Clustern, Datenbanken und virtuellen Maschinen. Der Code der Plattform ist auf GitHub verfügbar und wird unter der Apache-2.0-Lizenz vertrieben.
Als Basis-Technologiestack kommt Talos Linux und Flux CD zum Einsatz. Die Images mit System, Kernel und notwendigen Modulen werden im Voraus erstellt und atomar aktualisiert, was die Notwendigkeit von Komponenten wie dkms und eines Paketmanagers überflüssig macht und stabile Betrieb gewährleistet. Ein einfacher Installationsprozess in einem leeren Rechenzentrum wird via PXE und dem debian-ähnlichen Installer talos-bootstrap bereitgestellt. Innerhalb der Plattform können mit einem Klick Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics und andere Dienste bereitgestellt werden.
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 den letzten anderthalb Monaten hat das Projektteam die neuen Versionen 0.36 und 0.37 veröffentlicht. Zu den Änderungen in diesen Versionen gehören:
- Die Benutzeroberfläche wurde von Grund auf neu geschrieben. Grundlage dafür ist das Projekt openapi-ui.

- Im Interface gibt es jetzt einen Cluster-Selector. Der Dashboard arbeitet derzeit im Ein-Cluster-Modus (ein Dashboard pro Cluster). In Zukunft wird dasselbe Interface für den Multicluster-Modus verwendet.
- Auf dem Cluster-Bildschirm sind jetzt alle verfügbaren Namespaces sofort sichtbar. Die Liste wird über die aggregierende Schicht von Kubernetes (Tenant-Namespace) erstellt, sodass nur die Namespaces angezeigt werden, auf die Zugriff besteht.
- Die Erstellung von Ressourcen erfolgt jetzt über automatisch aus der Kubernetes OpenAPI generierte Formulare. Kommentare aus YAML sind nicht erforderlich: Die Felder und Validierungen werden direkt aus den Spezifikationen entnommen.
- Die Spezifikation neuer Anwendungen wird aus Helm-Charts mithilfe des cozy-values Generators erstellt, und die eingegebenen Felder im Formular spiegeln sich synchron in das finale YAML wider.
- Die Module zur Verwaltung von Tenants sind in den Administrationsbereich umgezogen: Hier können Sub-Tenants erstellt und spezifische Module/Anwendungen für diese zugewiesen werden (Zugriff hängt von der Rolle und den Rechten des Benutzers ab).
- Die Hinzufügung eines Tabs mit einer VNC-Konsole für virtuelle Maschinen ist geplant. Für einige Ressourcentypen werden spezielle Tabs/Felder hinzugefügt (zum Beispiel für KubeVirt-VMs).
- Das Ressourcenmanagement-System für Cozystack-Tenants wurde optimiert. Administratoren der Plattform können jetzt klare Limits für CPU, Speicher und Storage für jeden Tenant-Namespace in der Tenant-Spezifikation festlegen. So kann kein Tenant alle Ressourcen beanspruchen und andere Tenant bleiben ohne Ressourcen.
- Das Kube-OVN Plunger-Modul wurde hinzugefügt, um den Status des zentralen Kube-OVN-Netzwerkkontrollclusters kontinuierlich zu überwachen. Ein externer Agent erfasst den Status des OVN-Clusters und Konsensinformationen, bietet Prometheus-Metriken an und streamt Ereignisse über SSE (Server-Sent Events).
- Das CoreDNS-Addon wird nun über ein Helm-Chart bereitgestellt und kann in der Cluster-Spezifikation konfiguriert werden (automatische Skalierung, Anzahl der Replikate, Service-IP usw.). CoreDNS kann sowohl im Dashboard als auch über die Cozystack-API konfiguriert werden.
- Der S3-Speicher auf Basis von SeaweedFS ist auf Komponentenebene flexibler geworden. Das Helm-Chart ermöglicht die unabhängige Konfiguration jeder Komponente und ihrer Ressourcen: Master-Knoten, Volume-Server (mit Unterstützung für mehrere Zonen), Datenbank und S3-Gateway. Administratoren können für jede Komponente die Anzahl der Replikate, CPU-/Arbeitsspeicherlimits und den Speicherumfang festlegen.
- Die Integration von SeaweedFS 3.97 mit Unterstützung für serverseitige Verschlüsselung von S3-Buckets (SSE-C, SSE-KMS, SSE-S3) ist erfolgt. Bei einem Update von Cozystack wird die Version von SeaweedFS aktualisiert, und die Spezifikationen der Dienste werden automatisch in das neue Format umgewandelt.
- Der NGINX-Controller lässt sich nun auf Ebene jeder Instanz konfigurieren: CPU- und Arbeitsspeicher-Anforderungen/Limits können direkt festgelegt oder aus einer der vordefinierten Vorlagen ausgewählt werden.
- Wenn einer virtuellen Maschine eine öffentliche IP zugewiesen wird, wird diese stets für den Egress-Traffic verwendet, unabhängig von der Methode, mit der diese IP zugewiesen wurde.
Quelle: opennet.ru

