Dostępna jest nowa wersja darmowej platformy PaaS Cozystack 0.22.0, zbudowanej na bazie Kubernetes. Projekt ma na celu dostarczenie gotowej platformy dla dostawców hostingu oraz ram do budowy prywatnych i publicznych chmur. Platforma instalowana jest bezpośrednio na serwerach i obejmuje wszystkie aspekty przygotowania infrastruktury do świadczenia zarządzanych usług. Cozystack pozwala uruchamiać i dostarczać klastry Kubernetes, bazy danych oraz maszyny wirtualne. Kod platformy jest dostępny na GitHubie i udostępniany 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 dodano cozystack-controller oraz nowe byty: Workload i WorkloadMonitor — które umożliwiają monitorowanie stanu podów zarządzanych operatorami oraz ocenę poziomu usługi na podstawie wcześniej zdefiniowanych reguł. Aplikacje w Cozystack są zarządzane przez różnych operatorów, dlatego zdecydowano się na stworzenie jednolitego formatu do wyświetlania statusu każdej usługi.
Jak to działa: podczas wdrażania aplikacji instalowany jest również WorkloadMonitor, który monitoruje stan podów za pomocą selektora. Gdy tylko jeden z podów znajduje się pod selektorem, tworzona jest nowa jednostka Workload, która pokazuje rolę każdego poda oraz jego stan. W statusie WorkloadMonitor można zobaczyć liczbę istniejących replik oraz minimalną liczbę replik potrzebnych do utrzymania usługi. Kiedy obciążenie (workload) staje się mniejsze niż wartość minReplicas dla WorkloadMonitor, usługa jest oznaczana jako nieoperacyjna (non-operational).
Dla aplikacji, dla których nie można ustawić dokładnej wartości minReplicas (np. workerzy Kubernetes mogą skalować się automatycznie), wprowadzono możliwość całkowitego pominięcia tej wartości w WorkloadMonitor. W takim przypadku WorkloadMonitor po prostu zlicza ogólną liczbę uruchomionych instancji.
Taki mechanizm pozwala na użycie dowolnych operatorów i mechanizmów zarządzania podami w Kubernetes oraz łatwe rozszerzanie platformy, oferując jednolity interfejs do wyświetlania bieżącego stanu usługi.
WorkloadMonitor do zbierania informacji o replikach i ich dostępności został dodany do aplikacji Kubernetes, Postgres, Monitoring, VirtualMachine, VMInstance, Redis, etcd i SeaweedFS. Dashboard Cozystack teraz wyświetla liczbę replik aplikacji oraz poziom usługi dla każdej grupy Workload.
Inne zmiany:
- Wydano i opublikowano klienta i serwer telemetrii na licencji Apache 2.0. Zbieranie metryk dla telemetrii odbywa się zgodnie z rekomendacjami „Polityki zbierania danych i użytkowania telemetrii LF” i można je wyłączyć za pomocą opcji „telemetry-enabled: false” w konfiguracji Cozystack. Dane są anonimowe i całkowicie zanonimizowane. W kolejnych wydaniach platformy planowane jest stworzenie publicznego Dashboardu opartego na danych telemetrii.
- Zaktualizowano komponent cluster-autoscaler dla Kubernetes oraz jego konfiguracje, które pozwalają na bardziej efektywne skalowanie klastrów w górę i w dół.
- Zaktualizowano plik MAINTAINERS, w którym wymienieni są uczestnicy wspierający projekt oraz obszary ich odpowiedzialności.
- W Cozystack dodano aplikację serwisową builder, umożliwiającą budowanie platformy bezpośrednio w Kubernetes.
- Dla bazy danych VictoriaMetrics dodano możliwość określenia własnych parametrów oraz zwiększono domyślne ograniczenia.
- Dla Grafana i Alerta zaimplementowano zbieranie metryk z baz danych.
- Dodano alerty o stanie maszyn wirtualnych oraz klastrów postgres.
- Dla KubeVirt skonfigurowano zbieranie metryk oraz dodano dashboard Grafana.
- W konfiguracji Cozystack dodano opcję extra-keycloak-redirect-uri-for-dashboard, umożliwiającą skonfigurowanie dodatkowych przekierowań dla Keycloak.
- W VMInstance naprawiono błąd blokujący podłączenie VMdisks do maszyn wirtualnych.
- Zaktualizowano Flux Operator 0.12.0, Flux Instance chart 0.12.0, Cilium 1.16.5, Kube-OVN 1.13.2, CNPG PostgreSQL Operator 1.25.0, Talos Linux 1.9.1.
Źródło: opennet.ru
