Release of Bottlerocket 1.2, en distribution baserad på isolerade containrar

Releasen av Linux-distributionen Bottlerocket 1.2.0 är tillgänglig, utvecklad med deltagande av Amazon för effektiv och säker lansering av isolerade behållare. Distributionens verktyg och kontrollkomponenter är skrivna i Rust och distribueras under licenserna MIT och Apache 2.0. Det stöder körning av Bottlerocket på Amazon ECS, VMware och AWS EKS Kubernetes-kluster, samt att skapa anpassade builds och utgåvor som tillåter användning av olika orkestrerings- och körtidsverktyg för containrar.

Distributionen tillhandahåller en atomiskt och automatiskt uppdaterad odelbar systembild som inkluderar Linux-kärnan och en minimal systemmiljö, inklusive endast de komponenter som är nödvändiga för att köra containrar. Miljön inkluderar systemd systemhanteraren, Glibc-biblioteket, Buildroot-byggverktyget, GRUB-starthanteraren, den onda nätverkskonfiguratorn, containerd-runtime för isolerade containrar, Kubernetes containerorkestreringsplattform, aws-iam-autenticator och Amazon. ECS agent.

Behållarorkestreringsverktyg kommer i en separat hanteringsbehållare som är aktiverad som standard och hanteras genom API och AWS SSM Agent. Basbilden saknar ett kommandoskal, SSH-server och tolkade språk (till exempel ingen Python eller Perl) - administrativa verktyg och felsökningsverktyg placeras i en separat tjänstebehållare, som är inaktiverad som standard.

Den viktigaste skillnaden från liknande distributioner som Fedora CoreOS, CentOS/Red Hat Atomic Host är det primära fokuset på att tillhandahålla maximal säkerhet i samband med att stärka systemskyddet mot möjliga hot, vilket gör det svårare att utnyttja sårbarheter i OS-komponenter och öka behållarisoleringen . Behållare skapas med vanliga Linux-kärnmekanismer - cgroups, namespaces och seccomp. För ytterligare isolering använder distributionen SELinux i "framtvingande" läge.

Rotpartitionen är skrivskyddad monterad, och /etc settings-partitionen monteras i tmpfs och återställs till sitt ursprungliga tillstånd efter en omstart. Direkt modifiering av filer i /etc-katalogen, såsom /etc/resolv.conf och /etc/containerd/config.toml, stöds inte - för att permanent spara inställningar måste du använda API:t eller flytta funktionaliteten till separata behållare. Modulen dm-verity används för att kryptografiskt verifiera rotpartitionens integritet, och om ett försök att modifiera data på blockenhetsnivå upptäcks, startas systemet om.

De flesta systemkomponenter är skrivna i Rust, vilket ger minnessäkra funktioner för att undvika sårbarheter orsakade av efterfri minnesåtkomst, nollpekarereferenser och buffertöverskridanden. När man bygger som standard används kompileringslägena "-enable-default-pie" och "-enable-default-ssp" för att möjliggöra randomisering av det körbara filadressutrymmet (PIE) och skydd mot stackspill genom kanariefot. För paket skrivna i C/C++ är flaggorna "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" och "-fstack-clash" dessutom aktiverat -skydd".

I den nya utgåvan:

  • Lagt till stöd för registerspeglar för containeravbildningar.
  • Lade till möjligheten att använda självsignerade certifikat.
  • Tillagt alternativ för att konfigurera värdnamn.
  • Standardversionen av den administrativa behållaren har uppdaterats.
  • Lade till topologyManagerPolicy och topologyManagerScope-inställningar för kubelet.
  • Lade till stöd för kärnkomprimering med zstd-algoritmen.
  • Möjligheten att ladda virtuella maskiner till VMware i formatet OVA (Open Virtualization Format) tillhandahålls.
  • Distributionsversionen aws-k8s-1.21 har uppdaterats med stöd för Kubernetes 1.21. Stödet för aws-k8s-1.16 har upphört.
  • Uppdaterade paketversioner och beroenden för språket Rust.

Källa: opennet.ru

Lägg en kommentar