Dostępna jest wersja platformy PaaS Cozystack 0.37, zbudowanej na bazie Kubernetes. Projekt ma na celu dostarczenie gotowej platformy dla dostawców hostingu oraz ram do budowy prywatnych i publicznych chmur. Platforma jest instalowana bezpośrednio na serwerach i obejmuje wszystkie aspekty przygotowania infrastruktury do świadczenia zarządzanych usług. Cozystack umożliwia uruchamianie i dostarczanie klastrów Kubernetes, baz danych oraz maszyn wirtualnych. Kod platformy jest dostępny na GitHub i jest rozpowszechniany na licencji Apache-2.0.
Jako podstawowy stos technologii stosowane jest Talos Linux i Flux CD. Obrazy z systemem, jądrem i niezbędnymi modułami są wcześniej tworzone i aktualizowane atomowo, co pozwala na obejście się bez takich komponentów jak dkms i menedżer pakietów, oraz gwarantuje stabilną pracę. Umożliwiony jest prosty proces instalacji w pustym centrum danych za pomocą PXE oraz instalatora debianopodobnego talos-bootstrap. W ramach platformy można w łatwy sposób uruchomić Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics i inne usługi.
Platforma zawiera wolne wdrożenie infrastruktury sieciowej (fabric) zbudowane na Kube-OVN, wykorzystuje Cilium do organizacji sieci usług, MetalLB do ogłaszania usług na zewnątrz. Przechowywanie realizowane jest na LINSTOR, gdzie oferowane jest wykorzystanie ZFS jako warstwy bazowej dla pamięci masowej i DRBD do replikacji. Istnieje wstępnie skonfigurowany stos monitorowania na bazie VictoriaMetrics i Grafana. Do uruchomienia maszyn wirtualnych wykorzystywana jest technologia KubeVirt, która pozwala na uruchamianie klasycznych maszyn wirtualnych bezpośrednio w kontenerach Kubernetes i już posiada wszystkie niezbędne integracje z Cluster API do uruchamiania zarządzanych klastrów Kubernetes w ramach „żelaznego” klastra Kubernetes.
W ciągu ostatnich półtora miesiąca zespół projektu wydał nowe wersje 0.36 i 0.37. Wśród zmian w tych wydaniach:
- Interfejs użytkownika został napisany od podstaw. Jako baza wykorzystano projekt openapi-ui.

- W interfejsie pojawił się selector klastra. Obecnie dashboard działa w trybie jednego klastra (po jednym dashboardzie na klaster). W przyszłości ten sam interfejs będzie wykorzystywany w trybie wieloklastrowym.
- Na ekranie klastra teraz od razu widoczne są wszystkie dostępne przestrzenie nazw. Lista jest tworzona przez agregujący interfejs Kubernetes (tenant namespace), dlatego pokazane są tylko te przestrzenie, do których jest dostęp.
- Tworzenie zasobów odbywa się teraz za pomocą formularzy automatycznie generowanych z Kubernetes OpenAPI. Komentarze z YAML nie są potrzebne: pola i walidacja są pobierane bezpośrednio ze specyfikacji.
- Specyfikacja nowych aplikacji jest tworzona z helm chartów przy użyciu generatora cozy-values, a wprowadzone pola w formularzu są synchronizowane z końcowym YAML.
- Moduły zarządzania tenantami przeniosły się do sekcji administracji: można tu tworzyć subtenanty oraz ustawiać dla nich specyficzne moduły/aplikacje (dostęp zależy od roli i uprawnień użytkownika).
- Planowane jest dodanie zakładki z konsolą VNC dla maszyn wirtualnych. Dla niektórych typów zasobów zostaną dodane specjalne zakładki/pola (na przykład dla KubeVirt-VM).
- Stabilizowany jest mechanizm zarządzania zasobami dla tenantów Cozystack. Administratorzy platformy mogą teraz ustalać wyraźne limity CPU, pamięci i przestrzeni dyskowej dla każdego namespace tenant-a w specyfikacji tenanta. W ten sposób żaden z tenantów nie może 'zjeść' wszystkiego, pozostawiając inne tenanta bez zasobów.
- Dodano komponent Kube-OVN Plunger do ciągłego monitorowania stanu centralnego klastra zarządzającego siecią Kube-OVN. Zewnętrzny agent gromadzi status klastra OVN oraz informacje o konsensusie, pokazuje metryki Prometheus oraz strumień zdarzeń przez SSE (Server-Sent Events).
- Dodatek CoreDNS jest teraz wdrażany przez helm chart i konfigurowany w specyfikacji klastra (automatyczne skalowanie, liczba replik, adres IP usługi itp.). CoreDNS można konfigurować zarówno w dashboardzie, jak i przez API Cozystack.
- Przechowalnia S3 na bazie SeaweedFS stała się bardziej elastyczna na poziomie komponentów. Helm chart pozwala na niezależne konfigurowanie każdego komponentu i jego zasobów: węzłów master, serwerów volume (z obsługą wielu stref), bazy danych i bramy S3. Administratorzy mogą ustalać dla każdego komponentu liczbę replik, limity CPU/pamięci oraz wolumen przechowywania.
- Zintegrowano FS SeaweedFS 3.97 z obsługą szyfrowania serwerowego pojemników S3 (SSE-C, SSE-KMS, SSE-S3). Podczas aktualizacji Cozystack zaktualizowana zostanie wersja SeaweedFS, a specyfikacja usług automatycznie przekształcona do nowego formatu.
- Kontroler NGINX jest teraz konfigurowany na poziomie każdej repliki: można ustalać limity/limity CPU i pamięci bezpośrednio lub wybierać jeden z gotowych presetów.
- Jeśli wirtualnej maszynie przypisany jest zewnętrzny adres IP, zawsze jest on używany do ruchu egress, niezależnie od metody przypisania tego IP.
Źródło: opennet.ru

