Wydanie narzędzi do zarządzania kontenerami LXC i LXD 4.0

Kanoniczny опубликовала wydanie narzędzi do organizacji pracy izolowanych kontenerów LXC 4.0, menadżer kontenerów LXD 4.0 i wirtualny FS LXCFS 4.0 do symulacji w kontenerach /proc, /sys i zwirtualizowanej reprezentacji cgroupfs dla dystrybucji bez obsługi przestrzeni nazw cgroup. Branch 4.0 jest klasyfikowany jako wydanie długoterminowe, którego aktualizacje generowane są przez okres 5 lat

LXC to środowisko wykonawcze umożliwiające uruchamianie zarówno kontenerów systemowych, jak i kontenerów OCI. LXC zawiera bibliotekę liblxc, zestaw narzędzi (lxc-create, lxc-start, lxc-stop, lxc-ls itp.), szablony do budowania kontenerów oraz zestaw powiązań dla różnych języków programowania. Izolacja odbywa się przy użyciu standardowych mechanizmów jądra Linuksa. Do izolowania procesów, stosu sieciowego ipc, uts, identyfikatorów użytkowników i punktów montowania wykorzystywany jest mechanizm przestrzeni nazw. cgroups służą do ograniczania zasobów. Aby obniżyć uprawnienia i ograniczyć dostęp, wykorzystywane są funkcje jądra, takie jak profile Apparmor i SELinux, zasady Seccomp, Chroots (pivot_root) i możliwości. Kod LXC pisemny w języku C i rozpowszechniany na licencji GPLv2.

LXD to dodatek do LXC, CRIU i QEMU, który służy do centralnego zarządzania kontenerami i maszynami wirtualnymi na jednym lub większej liczbie serwerów. Jeśli LXC jest niskopoziomowym zestawem narzędzi do manipulacji na poziomie poszczególnych kontenerów, wówczas LXD jest implementowany jako proces w tle, który akceptuje żądania w sieci za pośrednictwem interfejsu API REST i pozwala na tworzenie skalowalnych konfiguracji wdrażanych na klastrze kilku serwerów.
Obsługiwane są różne backendy pamięci masowej (drzewo katalogów, ZFS, Btrfs, LVM), migawki z wycinkiem stanu, migracja na żywo uruchomionych kontenerów z jednej maszyny na drugą oraz narzędzia do organizowania przechowywania obrazów. Kod LXD pisemny w Go i rozpowszechniany na licencji Apache 2.0.

Klucz ulepszenia w LXC 4.0:

  • Sterownik został całkowicie przepisany do współpracy z cgroup. Dodano obsługę ujednoliconej hierarchii grup cgroup (cgroup2). Dodano funkcjonalność kontrolera zamrażarki, dzięki której możesz przerwać pracę w grupie cgroup i tymczasowo zwolnić część zasobów (procesor, wejścia/wyjścia, a potencjalnie nawet pamięć) w celu wykonania innych zadań;
  • Wdrożona infrastruktura do przechwytywania wywołań systemowych;
  • Dodano obsługę podsystemu jądra „pidfd”, zaprojektowanego do obsługi sytuacji ponownego użycia PID (pidfd jest powiązany z konkretnym procesem i nie ulega zmianie, natomiast PID może zostać powiązany z innym procesem po zakończeniu bieżącego procesu powiązanego z tym PID) ;
  • Poprawione tworzenie i usuwanie urządzeń sieciowych, a także ich przenoszenie pomiędzy przestrzeniami nazw podsystemów sieciowych;
  • Zaimplementowano możliwość przenoszenia urządzeń sieci bezprzewodowej (nl80211) do kontenerów.

Klucz ulepszenia w LXD 4.0:

  • Dodano obsługę uruchamiania nie tylko kontenerów, ale także maszyn wirtualnych;
  • W celu segmentacji serwerów LXD zaproponowano koncepcję projektu upraszczającą zarządzanie grupami kontenerów i maszyn wirtualnych. Każdy projekt może zawierać własny zestaw kontenerów, maszyn wirtualnych, obrazów, profili i partycji pamięci masowej. W związku z projektami możesz ustalać własne ograniczenia i zmieniać ustawienia;
  • Dodano obsługę przechwytywania wywołań systemowych dotyczących kontenerów;
  • Wdrożono tworzenie kopii zapasowych środowisk i przywracanie z nich;
  • Zapewniane jest automatyczne tworzenie migawek środowisk i partycji pamięci masowej z możliwością ustawienia czasu życia migawki;
  • Dodano API do monitorowania stanu sieci (informacje o sieci lxc);
  • Dodano wsparcie zmiany, wirtualny FS do mapowania punktów montowania na przestrzenie nazw użytkowników;
  • Zaproponowano nowe typy kart sieciowych „ipvlan” i „routowane”;
  • Dodano backend do korzystania z pamięci masowej opartej na CephFS;
  • Dla klastrów zaimplementowano obsługę replikacji obrazu i konfiguracji wieloarchitekturowych;
  • Dodano kontrolę dostępu opartą na rolach (RBAC);
  • Dodano obsługę CGroup2;
  • Dodano możliwość konfiguracji adresu MAC i określenia adresu źródłowego dla NAT;
  • Dodano API do zarządzania powiązaniami DHCP (dzierżawami);
  • Dodano obsługę Nftables.

Źródło: opennet.ru

Dodaj komentarz