Release av containerhanteringsverktyg LXC och LXD 4.0

Kanonisk опубликовала frisläppande av verktyg för att organisera arbetet med isolerade containrar LXC 4.0, containerchef LXD 4.0 och virtuell FS LXCFS 4.0 för simulering i /proc, /sys-behållare och en virtualiserad cgroupfs-representation för distributioner utan stöd för cgroup-namnområden. Branch 4.0 klassificeras som en långsiktig supportrelease, vars uppdateringar genereras under en period av 5 år

LXC är en körtid för att köra både systemcontainrar och OCI-containrar. LXC innehåller liblxc-biblioteket, en uppsättning verktyg (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), mallar för att bygga behållare och en uppsättning bindningar för olika programmeringsspråk. Isolering utförs med vanliga Linux-kärnmekanismer. För att isolera processer, ipc-nätverksstacken, uts, användar-ID och monteringspunkter, används namnutrymmesmekanismen. cgroups används för att begränsa resurser. För att sänka privilegier och begränsa åtkomst används kärnfunktioner som Apparmor- och SELinux-profiler, Seccomp-policyer, Chroots (pivot_root) och funktioner. Kod LXC skriven på C-språk och distribueras under GPLv2-licensen.

LXD är ett tillägg till LXC, CRIU och QEMU som används för att centralt hantera behållare och virtuella maskiner på en eller flera servrar. Om LXC är en verktygslåda på låg nivå för manipulation på nivån för enskilda behållare, så implementeras LXD som en bakgrundsprocess som accepterar förfrågningar över nätverket via REST API och låter dig skapa skalbara konfigurationer distribuerade på ett kluster av flera servrar.
Olika lagringsbackends stöds (katalogträd, ZFS, Btrfs, LVM), ögonblicksbilder med en tillståndsdel, livemigrering av körande behållare från en maskin till en annan och verktyg för att organisera bildlagring. Kod LXD skriven i Go och distribueras under Apache 2.0-licensen.

Nyckel förbättringar i LXC 4.0:

  • Drivrutinen har skrivits om helt för att fungera med cgroup. Lade till stöd för unified cgroup hierarki (cgroup2). Lade till fryskontrollfunktion, med vilken du kan stoppa arbetet i en cgroup och tillfälligt frigöra vissa resurser (CPU, I/O och potentiellt även minne) för att utföra andra uppgifter;
  • Implementerad infrastruktur för att avlyssna systemsamtal;
  • Lade till stöd för "pidfd"-kärnundersystemet, designat för att hantera situationen med PID-återanvändning (pidfd är associerad med en specifik process och ändras inte, medan en PID kan associeras med en annan process efter att den aktuella processen som är associerad med den PID avslutas) ;
  • Förbättrat skapande och radering av nätverksenheter, såväl som deras förflyttning mellan nätverksundersystems namnområden;
  • Möjligheten att flytta trådlösa nätverksenheter (nl80211) till behållare har implementerats.

Nyckel förbättringar i LXD 4.0:

  • Tillagt stöd för att lansera inte bara behållare utan även virtuella maskiner;
  • För att segmentera LXD-servrar har ett projektkoncept föreslagits som förenklar hanteringen av grupper av behållare och virtuella maskiner. Varje projekt kan inkludera sin egen uppsättning behållare, virtuella maskiner, bilder, profiler och lagringspartitioner. I samband med projekt kan du sätta dina egna begränsningar och ändra inställningar;
  • Tillagt stöd för att avlyssna systemanrop för containrar;
  • Implementerat skapande av säkerhetskopior av miljöer och återställning från dem;
  • Automatiskt skapande av ögonblicksbilder av miljöer och lagringspartitioner är försedd med möjligheten att ställa in livslängden för ögonblicksbilden;
  • Tillagt API för övervakning av nätverksstatus (lxc nätverksinformation);
  • Lagt till stöd shiftfs, virtuell FS för att mappa monteringspunkter till användarnamnområden;
  • Nya typer av nätverksadaptrar "ipvlan" och "routed" har föreslagits;
  • Lade till backend för att använda CephFS-baserad lagring;
  • Stöd för bildreplikering och multiarkitekturkonfigurationer har implementerats för kluster;
  • Tillagd rollbaserad åtkomstkontroll (RBAC);
  • Lade till stöd för CGroup2;
  • Lade till möjligheten att konfigurera MAC-adressen och bestämma källadressen för NAT;
  • Tillagt API för hantering av DHCP-bindningar (leasing);
  • Lade till stöd för Nftables.

Källa: opennet.ru

Lägg en kommentar