Firma Canonical ogłosiła dostępność narzędzia MicroCloud, które umożliwia szybkie uruchamianie klastrów obliczeniowych i systemów chmurowych z ogólnodostępnym, rozproszonym magazynem danych oraz zabezpieczoną siecią wirtualną na własnym sprzęcie. Narzędzie jest dostępne w postaci pakietu snap, zawierającego komponenty niezbędne do zarządzania pracą węzłów klastra. Komercyjna pomoc techniczna dla rozwiązań opartych na MicroCloud jest dostępna w ramach usługi Ubuntu Pro, jednak ti, którzy mogą obyć się bez wsparcia, mogą korzystać z narzędzia bez ograniczeń. Prace nad projektem zostały napisane w języku Go i są udostępniane na licencji AGPL 3.0.
Domyślnie MicroCloud wykorzystuje środki zapewniające odporność na awarie, co pozwala na tworzenie klastrów składających się z co najmniej trzech węzłów (maksymalnie do 50 węzłów). Stosowany do zarządzania klastrem stos technologiczny oparty jest na systemie centralnego zarządzania kontenerami i maszynami wirtualnymi LXD, platformie do budowy sieci wirtualnych OVN (Open Virtual Network) oraz rozproszonym magazynie odpornym na awarie Ceph. MicroCloud zapewnia narzędzia do automatycznej konfiguracji LXD, Ceph i OVN na wszystkich węzłach klastra.
Aby nowych serwerów w sieci, które mogą być podłączone do klastra, używa się mDNS, co pozwala skonfigurować cały klaster, uruchamiając tylko jedną komendę „microcloud init” na jednym z węzłów, po wcześniejszym zainstalowaniu pakietów snap lxd, microceph, microcloud i microovn. Jako główna platforma rozważany jest system Ubuntu Server, ale narzędzie nie jest związane z Ubuntu i może być używane w dowolnych dystrybucjach, dla których dostępna jest możliwość instalacji narzędzi snap (Arch, CentOS, Fedora, Debian, openSUSE, RHEL itd.). Możliwe jest również tworzenie klastrów opartych na systemach, w których używana jest atomowo aktualizowana OS Ubuntu Core.
Po uruchomieniu polecenia „microcloud init” narzędzie zidentyfikuje obecność innych serwerów w lokalnej sieci, wyda żądanie dodania dysków do wspólnego magazynu Ceph i zaproponuje skonfigurowanie parametrów wirtualnej sieci. Aby dołączyć do klastra, na serwerach muszą być wcześniej zainstalowane wymienione pakiety snap. Konfiguracja klastra może być zapisana w formacie YAML do późniejszego wdrożenia podobnych systemów. Aby dodać dodatkowe węzły po zakończeniu inicjalizacji, można użyć polecenia „microcloud add”.
Ogólna przestrzeń do przechowywania plików jest tworzona z włączeniem replikacji i odporności na awarie, co pozwala na uniknięcie utraty danych w przypadku awarii poszczególnych węzłów, dzięki przechowywaniu wielu kopii danych na różnych węzłach. Aby wdrożyć przechowywanie oparte na Ceph w klastrze, na trzech różnych komputerach muszą być obecne co najmniej trzy oddzielne dyski przydzielone do rozproszonego przechowywania danych.
Po gotowości klastra użytkownicy mają możliwość uruchomienia swoich aplikacji, korzystając z systemowych kontenerów lub maszyn wirtualnych, a także dostęp do wspólnego magazynu Ceph i narzędzi centralnego zarządzania opartych na LXD. Do zarządzania infrastrukturą kontenerową na szczycie klastra można uruchomić platformę Kubernetes (edycja Microk8s). W celu uwierzytelnienia użytkowników maszyn wirtualnych lub kontenerów w klastrze można zastosować OpenID Connect (OIDC) oraz autoryzację opartą na OpenFGA.

Możliwe jest elastyczne zarządzanie dostępnymi zasobami CPU, pamięci i wejścia/wyjścia, przekazywanie do środowisk urządzeń USB, GPU i nośników. Izolowane i wirtualne środowiska mogą być przenoszone między węzłami w trybie żywej migracji i zapisywane przy użyciu zrzutów. Metryki działania klastra i logi zdarzeń mogą być eksportowane do monitorowania za pomocą Prometheus i Grafana.
Oprócz tworzenia klastrów roboczych i prywatnych systemów chmurowych, narzędzie nadaje się również do szybkiego przeprowadzania eksperymentów w systemach deweloperów. Na przykład MicroCloud może być używane do symulacji klastra na laptopie dewelopera, testowania rozwijanych aplikacji chmurowych, eksperymentów z nowymi technologiami lub symulacji skomplikowanej infrastruktury.
Źródło: opennet.ru
