Dostępne jest wydanie wolnej platformy PaaS Cozystack 0.21.0, zbudowanej na Kubernetes. Projekt ma na celu dostarczenie gotowej platformy dla dostawców hostingu oraz ram dla budowy prywatnych i publicznych chmur. Platforma jest instalowana bezpośrednio na serwerach i obejmuje wszystkie aspekty przygotowania infrastruktury do dostarczania zarządzanych usług. Cozystack umożliwia uruchamianie i udostępnianie klastrów Kubernetes, baz danych oraz maszyn wirtualnych. Kod platformy jest dostępny na GitHub i jest dystrybuowany 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 całkowicie przeprojektowano interfejs Dashboard, który teraz bezpośrednio współpracuje z API Cozystack, a nie z zasobami FluxCD. Zmiana ta zapewnia graficzny interfejs użytkownikom końcowym i daje możliwość przyznawania uprawnień do wdrażania określonych usług z uwzględnieniem standardowego modelu RBAC w Kubernetes. Dla każdego tenant-a domyślnie tworzone są cztery grupy:
- view — dla dostępu tylko do odczytu;
- use — dla połączenia z maszynami wirtualnymi i korzystania z usług;
- admin — dla możliwości zamawiania podstawowych usług (mysql, postgres, redis, kubernetes, virtual-machine itd.);
- super-admin — dla tworzenia podległych tenant-ów i uruchamiania usług serwisowych (monitoring, etcd, ingress i seaweedfs).
Użytkownicy, którzy są w odpowiednich grupach, mogą uzyskać dostęp zarówno przez Kubernetes, jak i przez Dashboard. Choć w Cozystack stosowany jest podejście oparte na API, Dashboard jest ważną częścią platformy, ponieważ pozwala szybko tworzyć potrzebne usługi przez graficzny interfejs, a następnie zobaczyć, jak są one przedstawiane w API, a potem opisać je jako kod (IaC).
Główne pomiary w Dashboard:
- Zapewnia działanie bezpośrednio z API Cozystack.
- Usunięto prefiksy dla aplikacji, ponieważ każda aplikacja teraz używa swojego własnego Kinda.
- Przestrzenie nazw są filtrowane według prefiksu «tenant-«, co pozwala wyświetlać tylko użytkownicze przestrzenie nazw i wykluczyć z wyświetlania systemowe.
- Poprawiono wyświetlanie ikon przy włączonym OIDC (OpenID Connect).
- Dodano poprawki kosmetyczne, w tym poprawne linki do dokumentacji.
Inne zmiany:
- Dodano autoryzację dla Redis.
- Zrealizowano refaktoryzację ról i przypisania ról dla tenantów, usunięto wszystkie uprawnienia dla zasobów HelmRelease, usunięto grupę kubeapps-admin.
- Naprawiono uruchamianie Grafany, poprawiono URL dla wtyczki VictoriaLogs.
- Poprawiono specyfikację OpenAPI dla zasobów List w API Cozystack.
- Talos Linux zaktualizowano do wersji 1.8.4.
- Linstor-ha-controller zaktualizowano do wersji 1.2.3, co rozwiązało problem z odpornością na awarie wirtualnych maszyn.
- Dodano ustawienie rozmiaru dla bazy danych Grafana.
- Dodano dodatkowe możliwości zarządzania zasobami VMCluster.
Źródło: opennet.ru
