Die Veröffentlichung der kostenlosen PaaS-Plattform Cozystack 0.40, die auf Kubernetes basiert, ist jetzt verfügbar. Das Projekt zielt darauf ab, eine schlüsselfertige Plattform für Hosting-Anbieter zu bieten und einen Rahmen für den Aufbau von privaten und öffentlichen Clouds zu schaffen. Die Plattform wird direkt auf Servern installiert und deckt alle Aspekte der Infrastrukturvorbereitung ab, um verwaltete Dienste anzubieten. Cozystack ermöglicht es, Kubernetes-Cluster, Datenbanken und virtuelle Maschinen bereitzustellen und auszuführen. Der Code der Plattform ist auf GitHub verfügbar und wird unter der Apache-2.0-Lizenz verbreitet.
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) basiert auf Kube-OVN und verwendet Cilium für die Organisation des Service-Netzwerks sowie MetalLB für die Außenankündigung der Dienste. Die Speicherung erfolgt über LINSTOR, wobei ZFS als Basisschicht für den Speicher und DRBD für die Replikation angeboten wird. Ein vorkonfiguriertes Monitoring-Stack auf Basis von VictoriaMetrics und Grafana ist integriert. Zur Ausführung virtueller Maschinen kommt KubeVirt zum Einsatz, das die Ausführung klassischer virtueller Maschinen direkt in Kubernetes-Containern ermöglicht und bereits alle erforderlichen Integrationen mit der Cluster-API für den Betrieb verwalteter Kubernetes-Cluster innerhalb des „physikalischen“ Kubernetes-Clusters bietet.
In der neuen Version:
- Ein LINSTOR-Planer wurde hinzugefügt, um die optimale Platzierung von Pods zu gewährleisten. Der hauseigene „Scheduler Extender“ für Kubernetes arbeitet in Zusammenarbeit mit dem Standard-Kubernetes-Planer und hilft dabei, Pods optimal auf Knoten mit LINSTOR-Speicher zu platzieren. Wenn ein Pod ein LINSTOR-Volume anfordert, fragt der Planer beim LINSTOR-Controller nach, auf welchen Knoten lokale Replikate der benötigten Volumes vorhanden sind. Die Priorität liegt auf Knoten, auf denen die Daten bereits vorhanden sind, was den Netzwerkverkehr minimiert und die I/O-Leistung erhöht. Zusätzlich wurde ein Admission-WebHook implementiert, der automatisch Pods, die LINSTOR-CSI-Volumes verwenden, an den hauseigenen Planer weiterleitet und eine nahtlose Integration ohne manuelle Konfiguration gewährleistet.
- Speicher SeaweedFS SeaweedFS wurde auf Version 4.05 aktualisiert, die die S3-Traffic-Optimierung (Traffic Locality) beinhaltet: Anfragen werden jetzt an die nächstgelegenen Server geleitet, was die Latenz verringert und die Leistung des Speichers verbessert. Zudem gibt es einen neuen Admin-Komponenten mit einer Webschnittstelle und Unterstützung für Authentifizierung sowie Worker für die Ausführung verteilten Aufgaben. In Grafana wurden erweiterte Dashboards hinzugefügt, die es ermöglichen, die Buckets, API-Aufrufe und die Leistung zu überwachen. Unterstützung wurde hinzugefügt TLS-Zertifikaten für die Admin- und Worker-Komponenten.
- Der valuesFrom-Mechanismus von FluxCD ersetzt Lookup-Funktionen in Helm-Charts. Diese architektonische Verbesserung sorgt für einen klareren Parameterübergang und beseitigt die Notwendigkeit für Controller zur erzwungenen Synchronisierung (Reconciliation). Die Konfiguration aus ConfigMaps und Verweisen auf Dienste wird jetzt zentral über den Schlüssel cozystack-values in jedem Namensraum verwaltet.
- Für die Integration mit LINSTOR wurde die Unterstützung der Auto-Diskful-Funktion implementiert, die disklose Knoten in diskvolle umwandelt, wenn diese die DRBD-Ressourcen mehr als 30 Minuten im Zustand „Primary“ halten.
- Automatisierte Versionsverwaltungssysteme für PostgreSQL, Kubernetes, MariaDB und Redis wurden implementiert. Diese verfolgen Aktualisierungen in den Upstream-Repositorys und bieten Mechanismen für die automatisierte Versionsaktualisierung.
Quelle: opennet.ru
