Udgivelse af værktøjer til administration af containere LXC 6.0, Incus 6.0 og LXD 5.21.1

Linux Containers-samfundet har offentliggjort udgivelsen af værktøjet til organisering af arbejde med isolerede LXC-containere 6.0, som tilbyder en runtime, der er egnet til både at køre containere med et komplet systemmiljø, der minder om virtuelle maskiner, samt til at køre ikke-privilegerede containere af enkeltstående applikationer (OCI). LXC tilhører de lavniveauværktøjer, der fungerer på niveauet for individuelle containere. For centraliseret styring af containere, der er implementeret i et klynge af flere servere, er der udviklet Incus og LXD-systemer baseret på LXC. LXC 6.0-grenen er blevet klassificeret som en udgivelse med langvarig support, og opdateringer til den vil blive præsenteret over en periode på 5 år (indtil 2029). LXC-koden er skrevet i C og distribueres under GPLv2-licensen.

LXC inkluderer bibliotekerne liblxc, et sæt værktøjer (lxc-create, lxc-start, lxc-stop, lxc-ls osv.), skabeloner til opbygning af containere og et sæt bindings til forskellige programmeringssprog. Isoleringen udføres ved hjælp af standardmekanismerne i Linux-kernen. Isolation af processer, netværksstak, ipc, uts, brugeridentifikatorer og monteringspunkter anvender namespaces-mekanismen. For at begrænse ressourcer anvendes cgroups. For at reducere privilegier og begrænse adgangen er der brugt kernen funktionaliteter som Apparmor-profiler, SELinux-politikker, Seccomp-politikker, Chroots (pivot_root) og capabilities.

Vigtige ændringer:

  • Der er nu mulighed for at bygge en universel eksekverbar fil lxc, der kombinerer alle kommandoerne, der tidligere blev distribueret som separate værktøjer "lxc-*". For at bygge den samlede eksekverbare fil er der foreslået en mulighed "tools-multicall=true", hvormed alle de gamle separate værktøjer oprettes som symbolske links til lxc-værktøjet. At bygge i form af en enkelt eksekverbar fil kan væsentligt reducere det diskplads, der forbruges af værktøjet, hvilket er relevant for indlejrede systemer.
  • Der er tilføjet en funktion set_timeout i liblxc-biblioteket, som tillader at indstille en timeout for enhver operation, der interagerer med LXC-monitoren.
  • I netværksbro-interfaces lxcbr0 er aktiviteten som standard aktiveret understøttelse af IPv6 med installation af adresser fra IPv6 ULA (Unique Local Address) subnettet.
  • I lxc-usernsexec-værktøjet er der tilføjet valgmulighederne "-u" og "-g" til at ændre bruger- og gruppe-id'er (UID og GID).
  • I lxc-checkconfig-værktøjet vises versionen kun, når lxc-start-kommandoen er til stede, og der er tilføjet information om det maksimalt tilladte antal af hver type navnerum.
  • Der er tilføjet støtte til containerbilleder i OCI-format, hvor FS Squashfs anvendes til komprimering af oplysninger.
  • Til interaktion med systemd via D-Bus anvendes et separat bibliotek libdbus-1 i stedet for libsystemd.
  • Støtte til init-systemet Upstart er blevet indstillet.

Samtidig blev der offentliggjort en udgave af projektet Incus, hvor fællesskabet Linux Containers udvikler en fork af containerstyringssystemet LXD, skabt af det gamle udviklerteam, der tidligere skabte LXD. Koden til Incus er skrevet i Go og distribueres under Apache 2.0-licensen. Incus 6.0 markedsføres først som den stabile gren, for hvilken der vil blive sikret en langvarig opdateringscyklus (LTS). Blandt ændringerne i Incus 6.0 fremhæves muligheden for at oprette netværksinterfacer via API bridge.external_interfaces, forbedret understøttelse af autentificering via JWT (JSON Web Token), understøttelse af USB og visning af detaljeret systeminformation i kommandoen "incus info —resources", samt understøttelse af LXD 5.21-udgivelsen i værktøjet lxd-to-incus.

Incus og LXD giver værktøjer til centralt at administrere containere og virtuelle maskiner, der er deployeret både på en enkelt værtsmaskine og i et cluster af flere. servere. Projektet er gennemført som en baggrundsproces, der modtager anmodninger over netværket via REST API og understøtter forskellige backend-lagringsløsninger (biblioteker, ZFS, Btrfs, LVM), snapshots af systemtilstande, live-migrering af kørende containere fra én maskine til en anden og værktøjer til opbevaring af containerbilleder. LXC-værktøjet bruges som runtime til at køre containere. Isolation opnås ved hjælp af de indbyggede mekanismer i Linux-kernen (navnerum, cgroups, Apparmor, SELinux, Seccomp).

Fællesskabet Linux Containers overvågede udviklingen af LXD, indtil Canonical besluttede at transformere LXD til et kommercielt projekt. Målet med fork'en er at tilbyde en administreret, uafhængig alternativ til LXD-projektet, der er under kontrol af Canonical. Oprettelsen af Incus gav også mulighed for at rette nogle konceptuelle fejl, der blev begået under udviklingen af LXD, som tidligere ikke kunne rettes uden at bryde bagudkompatibiliteten.

Canonical har udgivet en ny version af containersystemet LXD 5.21.1. LXD 5.21-grenen er markeret som LTS og vil blive understøttet indtil juni 2029. Koden, der er tilføjet til LXD af medarbejdere fra Canonical, leveres under AGPLv3, men koden fra eksterne bidragsydere, som Canonical ikke ejer rettighederne til, forbliver under Apache 2.0. Blandt de funktionelle ændringer i LXD 5.21.1 kan nævnes overførslen af snap-pakken fra LXD til versionerne LXC 6.0 og LXCFS 6.0. API'et har fået tilføjet udvidelsen storage_volumes_all og den tilhørende handler /1.0/storage_volumes til at vise en liste over alle opbevaringsområder. Der er tilføjet en udvidelse, instances_files_modify_permissions, til at ændre adgangsrettigheder til eksisterende filer via API'et.

Udgivelsen af den virtuelle FS LXCFS 6.0 er nu tilgængelig, som anvendes til at simulere pseudo-filsystemerne /proc og /sys i containere, samt til virtualiseret repræsentation af cgroupfs for distributioner uden støtte til cgroup-navnerum. I den nye version er der tilføjet en mulighed "--enable-cgroup", der gør det muligt at styre aktiveringen af den indbyggede funktionalitet til at oprette et virtuelt cgroupfs-træ for containere ved at bruge cgroupv1 (i øjeblikket understøtter de fleste distributioner de kernel-givne navnerum til cgroup, hvilket gør det meningsløst at inkludere en alternativ implementering som standard, og det er nu valgfrit). Derudover er CPU-filtreringen ved generering af filen /sys/devices/system/cpu stoppet i LXCFS 6.0, afhængigt af tilstanden online/offline.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster