Frigivelse af containerstyringsværktøjer LXC og LXD 4.0

Canonical Company опубликовала frigivelse af værktøjer til at organisere arbejdet med isolerede containere LXC 4.0, containerchef LXD 4.0 og virtuel FS LXCFS 4.0 til simulering i /proc, /sys-containere og en virtualiseret cgroupfs-visning til distributioner uden understøttelse af cgroup-navnerum. Branch 4.0 er klassificeret som en langsigtet supportudgivelse, hvor opdateringer genereres over en periode på 5 år

LXC er en runtime til at køre både systemcontainere og OCI-containere. LXC inkluderer liblxc-biblioteket, et sæt hjælpeprogrammer (lxc-create, lxc-start, lxc-stop, lxc-ls osv.), skabeloner til at bygge containere og et sæt bindinger til forskellige programmeringssprog. Isolering udføres ved hjælp af standard Linux-kernemekanismer. For at isolere processer, ipc-netværksstakken, uts, bruger-id'er og monteringspunkter, bruges navnerumsmekanismen. cgroups bruges til at begrænse ressourcer. For at sænke privilegier og begrænse adgang, bruges kernefunktioner såsom Apparmor- og SELinux-profiler, Seccomp-politikker, Chroots (pivot_root) og muligheder. Kode LXC skrevet i C-sprog og distribueres under GPLv2-licensen.

LXD er en tilføjelse til LXC, CRIU og QEMU, der bruges til centralt at administrere containere og virtuelle maskiner på en eller flere servere. Hvis LXC er et værktøjssæt på lavt niveau til manipulation på niveau med individuelle containere, så implementeres LXD som en baggrundsproces, der accepterer anmodninger over netværket via REST API og giver dig mulighed for at oprette skalerbare konfigurationer implementeret på en klynge af flere servere.
Forskellige lagerbackends understøttes (katalogtræ, ZFS, Btrfs, LVM), snapshots med et tilstandsudsnit, live migrering af kørende containere fra én maskine til en anden og værktøjer til at organisere billedlagring. Kode LXD skrevet i Go og distribueret under Apache 2.0-licensen.

Nøgle forbedring i LXC 4.0:

  • Driveren er blevet fuldstændig omskrevet til at fungere med cgroup. Tilføjet understøttelse af unified cgroup hierarki (cgroup2). Tilføjet fryser-controller-funktionalitet, hvormed du kan stoppe arbejdet i en cgroup og midlertidigt frigøre nogle ressourcer (CPU, I/O og potentielt endda hukommelse) til at udføre andre opgaver;
  • Implementeret infrastruktur til aflytning af systemopkald;
  • Tilføjet understøttelse af "pidfd"-kerneundersystemet, designet til at håndtere situationen med PID-genbrug (pidfd er forbundet med en specifik proces og ændres ikke, mens en PID kan associeres med en anden proces, efter at den aktuelle proces, der er forbundet med den PID, afsluttes) ;
  • Forbedret oprettelse og sletning af netværksenheder, såvel som deres bevægelse mellem netværksundersystemers navneområder;
  • Muligheden for at flytte trådløse netværksenheder (nl80211) ind i containere er blevet implementeret.

Nøgle forbedring i LXD 4.0:

  • Tilføjet understøttelse til lancering af ikke kun containere, men også virtuelle maskiner;
  • For at segmentere LXD-servere er der foreslået et projektkoncept, der forenkler styringen af ​​grupper af containere og virtuelle maskiner. Hvert projekt kan inkludere sit eget sæt af containere, virtuelle maskiner, billeder, profiler og lagerpartitioner. I forbindelse med projekter kan du sætte dine egne begrænsninger og ændre indstillinger;
  • Tilføjet support til at opfange systemopkald til containere;
  • Implementeret oprettelse af sikkerhedskopier af miljøer og gendannelse fra dem;
  • Automatisk oprettelse af snapshots af miljøer og lagerpartitioner er forsynet med muligheden for at indstille levetiden for snapshotet;
  • Tilføjet API til overvågning af netværksstatus (lxc netværksinfo);
  • Tilføjet support shiftfs, virtuel FS til at kortlægge monteringspunkter til brugernavneområder;
  • Nye typer netværksadaptere "ipvlan" og "routed" er blevet foreslået;
  • Tilføjet backend til brug af CephFS-baseret lagring;
  • Understøttelse af billedreplikering og multiarkitekturkonfigurationer er blevet implementeret for klynger;
  • Tilføjet rollebaseret adgangskontrol (RBAC);
  • Tilføjet understøttelse af CGroup2;
  • Tilføjet muligheden for at konfigurere MAC-adressen og bestemme kildeadressen til NAT;
  • Tilføjet API til styring af DHCP-bindinger (leasingkontrakter);
  • Tilføjet understøttelse af Nftables.

Kilde: opennet.ru

Tilføj en kommentar