Bottlerocket 1.8 är tillgänglig, en distribution baserad på isolerade behållare

Releasen av Linux-distributionen Bottlerocket 1.8.0 har publicerats, 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:

  • Innehållet i administrations- och kontrollbehållarna har uppdaterats.
  • Körtid för isolerade behållare har uppdaterats till containerd 1.6.x-grenen.
  • Säkerställer att bakgrundsprocesser som koordinerar driften av behållare startas om efter ändringar i certifikatlagret.
  • Det är möjligt att ställa in kärnstartparametrar genom avsnittet Boot Configuration.
  • Aktiverad ignorering av tomma block vid övervakning av rotpartitionens integritet med dm-verity.
  • Möjligheten att statiskt binda värdnamn i /etc/hosts har tillhandahållits.
  • Möjligheten att generera en nätverkskonfiguration med hjälp av netdog-verktyget har tillhandahållits (kommandot generera-net-config har lagts till).
  • Nya distributionsalternativ med stöd för Kubernetes 1.23 har föreslagits. Starttiden för poddar i Kubernetes har minskats genom att inaktivera läget configMapAndSecretChangeDetectionStrategy. Lade till nya kubelet-inställningar: provider-id och podPidsLimit.
  • En ny version av distributionssatsen "aws-ecs-1-nvidia" för Amazon Elastic Container Service (Amazon ECS), som levereras med NVIDIA-drivrutiner, har föreslagits.
  • Tillagt stöd för Microchip Smart Storage och MegaRAID SAS-lagringsenheter. Stödet för Ethernet-kort på Broadcom-chips har utökats.
  • Uppdaterade paketversioner och beroenden för Go och Rust-språken, samt versioner av paket med tredjepartsprogram. Bottlerocket SDK har uppdaterats till version 0.26.0.

Källa: opennet.ru

Lägg en kommentar