Opublikowano wersję platformy PaaS Cozystack 0.17.0 zbudowanej na bazie Kubernetes. Projekt ma na celu dostarczenie gotowej platformy dla dostawców hostingu oraz frameworka 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 GitHubie i jest rozpowszechniany na licencji Apache-2.0.
Jako podstawowy stos technologii używany jest Talos Linux i Flux CD. Obrazy systemu, jądra i niezbędnych modułów są wstępnie formowane i aktualizowane atomowo, co pozwala uniknąć takich komponentów jak dkms i menedżer pakietów, a tym samym gwarantuje stabilną pracę. Oferowany jest prosty sposób instalacji w pustym centrum danych za pomocą PXE i instalatora podobnego do debiana talos-bootstrap.
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 nowej wersji:
- W platformie dodano możliwość tworzenia maszyn wirtualnych z wieloma dyskami, instalacji z CD-ROM oraz przełączania dysków pomiędzy maszynami wirtualnymi. Stara aplikacja „Maszyna Wirtualna” została podzielona na dwa osobne elementy: „vm-disk” (Dysk Maszyny Wirtualnej) oraz „vm-instance” (Instancja Maszyny Wirtualnej). Aplikacja vm-disk obsługuje ładowanie obrazów z HTTP lub lokalnych nośników, a podczas tworzenia dysku można określić źródło i typ obrazu — CD-ROM lub klasyczny. Aplikacja vm-instance umożliwia uruchomienie maszyny wirtualnej z utworzonych dysków. Możliwość korzystania ze starej aplikacji Maszyna Wirtualna została zachowana dla zapewnienia zgodności.
- Dodano opcje instanceType i instanceProfile, jak również zestaw instancji domyślnych oraz profili dla Ubuntu, RHEL, Alpine i Windows. Umożliwiono skonfigurowanie maszyny wirtualnej z optymalnymi parametrami w zależności od systemu operacyjnego (na przykład włączenie TPM i urządzeń virtio, używanie tabletu-pointer), a zamiast podawania zasobów dla maszyny wirtualnej można wykorzystać standaryzowane instancje, specjalnie zaprojektowane dla konkretnego typu obciążenia. Typy instancji są również stosowane w Kubernetes, co pozwala na lepsze planowanie grup węzłów.
- Do ingress dodano opcję włączenia proxy do ładowania obrazów z lokalnych maszyn, a także zaktualizowano CDI, aby poprawić jego działanie z urządzeniami blokowymi. Zrealizowano możliwość ładowania obrazów dla LINSTOR za pomocą narzędzia virtctl.
- Dodano wsparcie dla maszyn wirtualnych z systemem Windows. Testowano instalację Windows 10 i Windows Server 2k15 z ISO z użyciem nowych vm-disk i vm-instance, a następnie przełączano na sterowniki VirtIO.
- Przy zamawianiu koszy S3 wprowadzono automatyczne wdrażanie interfejsu webowego do ich obsługi. Dzięki interfejsowi webowemu można przesyłać i usuwać pliki, a także generować tymczasowe linki do publicznego dostępu. Interfejs zbudowany jest w oparciu o s3manager, rozpowszechniany na licencji Apache 2.0.

- Dodano alerty dla FluxCD, wyświetlające stan wydań. Alerty są zorganizowane w kategorie, a w polu Resource wyświetlany jest problemowy zasób.
- Wprowadzono możliwość dostarczania alertów do Telegrama z deduplikacją oraz przyciskami do zarządzania cyklem życia każdego alertu.
- Do Cluster API dodano kontroler MachineHealthChecks, który będzie monitorować stan węzłów w klastrze Kubernetes. W przypadku problemów węzły będą automatycznie przeznaczane na nowo.
- Dodano komponent external-dns, który umożliwia automatyczne konfigurowanie rekordów DNS w Cloudflare. Ponadto wprowadzono możliwość zamawiania certyfikatów przez API Cloudflare z wykorzystaniem metody DNS.
- Dodano external-secrets-operator, który synchronizuje sekrety z zewnętrznymi systemami.
- Wprowadzono opcjonalne komponenty, które są domyślnie wyłączone, ale dostępne do włączenia za pomocą opcji bundle-enable w konfiguracji Cozystack.
- Udoskonalono zadania (job) do inicjalizacji PostgreSQL i FerretDB, które teraz czekają, aż baza danych będzie gotowa, zanim podejmą jakiekolwiek działania związane z konfiguracją.
- Zwiększona stabilność Kube-OVN. Wyłączono możliwość komunikacji z NetworkManagerem. W niektórych systemach problem ten blokował uruchamianie kontrolerów OVN.
- Dodano konfigurację logów dla Clickhouse. Logi wyodrębniono do osobnej sekcji i skonfigurowano rotację.
- Zaktualizowane komponenty: LINSTOR 1.29.1, Talos Linux 1.8.1 i Cilium 1.16.3.
Źródło: opennet.ru

