Die Veröffentlichung von Cozystack 0.40, einer offenen PaaS-Plattform auf Basis von Kubernetes

Die Veröffentlichung der freien PaaS-Plattform Cozystack 0.40, die auf Kubernetes basiert, ist jetzt verfügbar. Das Projekt zielt darauf ab, eine vollständige Plattform für Hosting-Anbieter und einen Rahmen zum Aufbau privater und öffentlicher Clouds bereitzustellen. Die Plattform wird direkt auf Servern installiert und deckt alle Aspekte der Infrastrukturvorbereitung für die Bereitstellung verwalteter Dienste ab. Cozystack ermöglicht das Starten und Bereitstellen von Kubernetes-Clustern, Datenbanken und virtuellen Maschinen. Der Quellcode der Plattform ist auf GitHub verfügbar und wird unter der Lizenz Apache-2.0 veröffentlicht.

Als Basistechnologiestack wird Talos Linux und Flux CD verwendet. Die Images mit dem System, dem Kernel und den erforderlichen Modulen werden im Voraus erstellt und werden atomar aktualisiert, was es ermöglicht, auf Komponenten wie dkms und Paketmanager zu verzichten und eine stabile Funktionalität zu gewährleisten. Es wird eine einfache Installationsmethode in einem leeren Rechenzentrum durch PXE und den debian-ähnlichen Installer talos-bootstrap bereitgestellt. Im Rahmen der Plattform können per Klick Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics und andere Dienste bereitgestellt werden.

Die Plattform umfasst eine freie Implementierung der Netzwerkinfrastruktur (fabric) basierend auf Kube-OVN und verwendet Cilium zur Organisation des Servicenetzwerks und MetalLB für die öffentliche Ankündigung von Diensten. Der Speicher wird auf LINSTOR realisiert, wobei die Verwendung von ZFS als Basisschicht für den Speicher und DRBD für die Replikation angeboten wird. Ein vordefinierter Monitoring-Stack auf Basis von VictoriaMetrics und Grafana ist vorhanden. Zur Ausführung virtueller Maschinen wird die Technologie KubeVirt verwendet, die es ermöglicht, klassische virtuelle Maschinen direkt in Kubernetes-Containern zu betreiben und bereits alle notwendigen Integrationen mit Cluster API für die Ausführung verwalteter Kubernetes-Cluster innerhalb eines „physischen“ Kubernetes-Clusters zu haben.

In der neuen Version:

  • Ein LINSTOR-Scheduler wurde hinzugefügt, um die optimale Platzierung von Pods zu gewährleisten. Der eigene "Scheduler Extender" für Kubernetes arbeitet mit dem standardmäßigen Kubernetes-Scheduler zusammen und hilft, Pods optimal auf Knoten mit LINSTOR-Speicher zu platzieren. Wenn ein Pod ein LINSTOR-Volume anfordert, informiert der Scheduler beim LINSTOR-Controller, auf welchen Knoten lokale Kopien der benötigten Volumes vorhanden sind. Knoten mit bereits vorhandenen Daten haben Priorität, um den Netzwerkverkehr zu minimieren und die I/O-Leistung zu erhöhen. Zusätzlich wurde ein Admission-WebHook implementiert, der Pods, die LINSTOR-CSI-Volumes nutzen, automatisch an den eigenen Scheduler weiterleitet, wodurch eine nahtlose Integration ohne manuelle Konfiguration gewährleistet wird.
  • Das SeaweedFS-Speicherformat wurde auf Version 4.05 aktualisiert, in der der S3-Traffic (Traffic Locality) optimiert wurde: Anfragen werden nun an die nächstgelegenen Server gesendet, was die Latenz verringert und die Speicherung beschleunigt. Außerdem gibt es eine neue Admin-Komponente mit einer Weboberfläche und Unterstützung für Authentifizierung sowie Worker für die Ausführung verteilter Aufgaben. In Grafana wurden erweiterte Dashboards hinzugefügt, die die Überwachung von Buckets, API-Aufrufen und Leistung ermöglichen. Unterstützung wurde hinzugefügt TLS-Zertifikate für die Admin- und Worker-Komponenten.
  • Der Mechanismus valuesFrom aus FluxCD hat die Lookup-Funktionen in Helm-Charts ersetzt. Diese architektonische Verbesserung sorgt für eine sauberere Übergabe von Parametern und beseitigt die Notwendigkeit für Controller zur erzwungenen Synchronisation (Reconciliation). Die Konfiguration aus ConfigMaps und Links zu Services wird nun zentral über den Schlüssel cozystack-values in jedem Namespace verwaltet.
  • Die Komponenten zur Integration mit LINSTOR unterstützen jetzt die Funktion auto-diskful, die diskless Knoten in diskful Knoten umwandelt, wenn diese Ressourcen von DRBD länger als 30 Minuten im Zustand Primary halten.
  • Automatisierte Versionsverwaltungssysteme für PostgreSQL, Kubernetes, MariaDB und Redis wurden implementiert, die Updates in den Upstream-Repositories verfolgen und Mechanismen zur automatischen Versionsaktualisierung bereitstellen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4