Release Cozystack 0.37, eine offene PaaS-Plattform auf Basis von Kubernetes

Die Version der freien PaaS-Plattform Cozystack 0.37, die auf Kubernetes basiert, ist jetzt verfügbar. Das Projekt zielt darauf ab, eine fertige Plattform für Hosting-Anbieter und einen Rahmen für den 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 den Betrieb und die Bereitstellung von Kubernetes-Clustern, Datenbanken und virtuellen Maschinen. Der Code der Plattform ist auf GitHub verfügbar und wird unter der Lizenz Apache-2.0 verbreitet.

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) auf Kube-OVN-Basis und verwendet Cilium für die Organisation des Dienstnetzwerks sowie MetalLB für die Ankündigung von Diensten nach außen. Der Speicher ist auf LINSTOR implementiert, wobei ZFS als Basisschicht für den Speicher und DRBD für die Replikation verwendet wird. Es gibt einen vorkonfigurierten Überwachungsstack auf VictoriaMetrics- und Grafana-Basis. Zum Starten virtuelle Maschinen wird die Technologie KubeVirt verwendet, die es ermöglicht, klassische virtuelle Maschinen direkt in Kubernetes-Containern auszuführen und bereits alle erforderlichen Integrationen mit der Cluster-API für das Starten verwalteter Kubernetes-Cluster innerhalb eines "eisenernen" Kubernetes-Clusters hat.

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. Als Grundlage wurde das Projekt openapi-ui verwendet.
    Release Cozystack 0.37, eine offene PaaS-Plattform auf Basis von Kubernetes
  • Im Interface gibt es jetzt einen Cluster-Selector. Der Dashboard arbeitet derzeit im Modus eines einzelnen Clusters (ein Dashboard pro Cluster). In Zukunft wird diese Oberfläche auch für den Multicluster-Modus verwendet werden.
  • Auf dem Cluster-Bildschirm sind nun sofort alle verfügbaren Namensräume sichtbar. Die Liste wird über eine aggregierende Schicht von Kubernetes (tenant namespace) erstellt, sodass nur die Namensräume angezeigt werden, auf die zugegriffen werden kann.
  • Die Erstellung von Ressourcen erfolgt jetzt über Formulare, die automatisch aus der Kubernetes OpenAPI generiert werden. Kommentare aus YAML sind nicht erforderlich: Felder und Validierung stammen direkt aus den Spezifikationen.
  • Die Spezifikation neuer Anwendungen wird aus Helm-Charts mit dem cozy-values Generator erstellt, und die eingegebenen Felder im Formular spiegeln sich synchron im endgültigen YAML wider.
  • Die Module zur Verwaltung von Tenants wurden in den Administrationsbereich verlagert: Hier können Subtenants erstellt und spezifische Module/Anwendungen für sie festgelegt werden (der Zugang hängt von der Rolle und den Rechten des Benutzers ab).
  • Es ist geplant, einen Tab mit einer VNC-Konsole für virtuelle Maschinen hinzuzufügen. Für einige Ressourcentypen werden spezielle Tabs/Felder hinzugefügt (zum Beispiel für KubeVirt-VMs).
  • Der Mechanismus zur Verwaltung von Ressourcen für Tenants in Cozystack wurde stabilisiert. Die Administratoren der Plattform können nun explizite Limits für CPU, Arbeitsspeicher und Speicherplatz für jeden tenant-namespace in der Spezifikation des Tenants festlegen. So kann kein Tenant alles „essen“ und andere Tenants ohne Ressourcen lassen.
  • Das Kube-OVN Plunger-Komponente wurde hinzugefügt, um den Zustand des zentralen Steuerclusters von Kube-OVN kontinuierlich zu überwachen. Der externe Agent sammelt den Status des OVN-Clusters und Informationen zum Konsens, zeigt Prometheus-Metriken und Ereignisströme über SSE (Server-Sent Events) an.
  • Das CoreDNS-Addon wird jetzt über ein Helm-Chart bereitgestellt und in der Cluster-Spezifikation konfiguriert (automatisches Skalieren, Anzahl der Replikate, Service-IP usw.). CoreDNS kann sowohl über das 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 es, jede Komponente und ihre Ressourcen unabhängig zu konfigurieren: Master-Knoten, Volume-Server (mit Unterstützung für mehrere Zonen), Datenbank und S3-Gateway. Administratoren können die Anzahl der Replikate, CPU-/Speicherkapazitätsgrenzen und den Speicherplatz für jede Komponente festlegen.
  • Integriert mit FS SeaweedFS 3.97, das serverseitige Verschlüsselung für S3-Buckets (SSE-C, SSE-KMS, SSE-S3) unterstützt. Bei einem Update von Cozystack wird die Version von SeaweedFS aktualisiert, und die Servicespezifikation wird automatisch in das neue Format umgewandelt.
  • Der NGINX-Controller wird jetzt auf der Ebene jeder Replik konfiguriert: Es können direkt Anforderungen/Grenzen für CPU und Speicher festgelegt oder eine der vorhandenen Voreinstellungen ausgewählt werden.
  • Wenn einer virtuellen Maschine eine externe IP zugewiesen ist, wird diese immer für den Egress-Verkehr verwendet, unabhängig von der Methode der Zuweisung dieser IP.

Quelle: opennet.ru

60GB SSD 8Gb DDR4