S'ha llançat una distribució minimalista de Linux Bottlerocket per executar contenidors. El més important d'ell

S'ha llançat una distribució minimalista de Linux Bottlerocket per executar contenidors. El més important d'ell

Empresa Amazon va anunciar sobre el llançament final Butllerí — una distribució especialitzada per fer funcionar contenidors i gestionar-los de manera eficaç.

Bottlerocket (per cert, el nom que es dóna als petits coets de pols negre casolans) no és el primer sistema operatiu per a contenidors, però és probable que s'amplifiqui gràcies a la integració predeterminada amb els serveis d'AWS. Tot i que el sistema està enfocat al núvol d'Amazon, el codi font obert permet construir-lo a qualsevol lloc: localment en un servidor, en un Raspberry Pi, en qualsevol núvol competidor i fins i tot en un entorn sense contenidor.

Aquest és un substitut completament digne de la distribució CoreOS que va enterrar Red Hat.

De fet, la divisió d'Amazon Web Services ja té Amazon Linux, que fa poc va sortir en la seva segona versió: és una distribució d'ús general que es pot executar en un contenidor Docker o amb el Linux KVM, Microsoft Hyper-V i VMware. Hipervisors ESXi. Es va optimitzar per funcionar al núvol d'AWS, però amb el llançament de Bottlerocket, s'anima tothom a actualitzar-se a un nou sistema que sigui més segur, modern i que faci servir menys recursos.

AWS va anunciar Bottlerocket el març de 2020. Immediatament va admetre que aquest no és el primer "Linux per a contenidors", citant CoreOS, Rancher OS i Project Atomic com a fonts d'inspiració. Els desenvolupadors van escriure que el sistema operatiu és "el resultat de les lliçons que hem après d'executar serveis de producció a escala d'Amazon durant molt de temps i de l'experiència que hem adquirit durant els últims sis anys sobre com executar contenidors".

Minimalisme extrem

A Linux no hi ha tot el que no és necessari per executar contenidors. Aquest disseny, segons l'empresa, redueix la superfície d'atac.

Això significa que s'instal·len menys paquets al sistema base, cosa que facilita el manteniment i l'actualització del sistema operatiu, i també redueix la probabilitat de problemes a causa de dependències, reduint l'ús de recursos. Bàsicament, aquí tot funciona dins de contenidors separats i el sistema subjacent està pràcticament nu.

Amazon també ha eliminat tots els intèrprets i intèrprets, eliminant el risc que s'utilitzin o que els usuaris augmenten accidentalment els privilegis. Per motius de minimalisme i seguretat, la imatge base no inclou un intèrpret d'ordres, un servidor SSH o llenguatges interpretats com Python. Les eines de l'administrador es col·loquen en un contenidor de servei independent, que està desactivat per defecte.

El sistema es gestiona de dues maneres: mitjançant l'API i l'orquestració.

En lloc d'un gestor de paquets que actualitza peces individuals de programari, Bottlerocket descarrega una imatge completa del sistema de fitxers i s'hi reinicia. Si una càrrega falla, es retrocedeix automàticament i una fallada de càrrega de treball pot desencadenar una descàrrega manualment (ordre mitjançant API).

Marc TUF (The Update Framework) descarrega actualitzacions basades en imatges a particions alternatives o "desmuntades". S'assignen dues particions de disc per al sistema, una de les quals conté el sistema actiu i l'actualització es copia a la segona. En aquest cas, la partició arrel es munta en mode de només lectura, i la partició /etc muntat amb el sistema de fitxers a la memòria RAM tmpfs i restaura l'estat original després d'un reinici. Modificació directa dels fitxers de configuració en /etc no compatible: per desar la configuració, hauríeu d'utilitzar l'API o moure la funcionalitat a contenidors separats.

S'ha llançat una distribució minimalista de Linux Bottlerocket per executar contenidors. El més important d'ell
Esquema d'actualització de l'API

Безопасность

Els contenidors es creen mitjançant mecanismes estàndard del nucli de Linux: cgroups, espais de noms i seccomp, i s'utilitzen com a sistema de control d'accés forçat, és a dir, per a un aïllament addicional SELinux en mode "aplicar".

Per defecte, les polítiques estan habilitades per compartir recursos entre els contenidors i el nucli. Els binaris estan protegits amb marques per evitar que els usuaris o programes els executin. I si algú arriba al sistema de fitxers, Bottlerocket ofereix una eina per comprovar i fer un seguiment dels canvis realitzats.

El mode "arrencada verificada" s'implementa mitjançant la funció device-mapper-verity (dm-veritat), que comprova la integritat de la partició arrel durant l'arrencada. AWS descriu dm-verity com "una característica del nucli de Linux que proporciona comprovacions d'integritat per evitar que el programari maliciós s'executi al sistema operatiu, com ara sobreescriure el programari principal del sistema".

També hi ha un filtre al sistema eBPF (BPF ampliat, desenvolupat per Alexey Starovoitov), que permet substituir els mòduls del nucli per programes BPF més segurs per a operacions del sistema de baix nivell.

Model d'execució
Usuari definit
Recopilació
Безопасность
Mode de fallada
Accés als recursos

Usuari
la tasca

qualsevol
drets d'usuari
interrompre l'execució
trucada al sistema, falla

El nucli
la tasca
нет
estàtica
нет
pànic del nucli
directament

BPF
esdeveniment

JIT, CO-RE
verificació, JIT
missatge d'error
ajudants limitats

Com difereix BPF del codi normal d'usuari o de nivell del nucli font

AWS va dir que Bottlerocket "empra un model operatiu que millora encara més la seguretat evitant les connexions a servidors de producció amb privilegis administratius" i és "adequat per a sistemes distribuïts grans on el control sobre cada host individual és limitat".

Es proporciona un contenidor d'administrador per als administradors del sistema. Però AWS no creu que un administrador hagi de treballar sovint dins de Bottlerocket: "L'acte d'iniciar sessió en una instància de Bottlerocket separada està pensat per a operacions poc freqüents: depuració avançada i resolució de problemes". escriure desenvolupadors.

Llenguatge rust

La instrumentació del sistema operatiu a la part superior del nucli està escrita principalment en Rust. Aquesta llengua és per la seva naturalesa redueix la probabilitat d'accés a la memòria no segurI elimina les condicions de carrera entre fils.

Les banderes s'apliquen per defecte quan es construeixen --enable-default-pie и --enable-default-ssp per habilitar l'aleatorització de l'espai d'adreces dels fitxers executables (executable independent de la posició, PIE) i protecció contra desbordament de la pila.

Per als paquets C/C++, s'inclouen marques addicionals -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

A més de Rust i C/C++, alguns paquets estan escrits a Go.

Integració amb serveis d'AWS

La diferència amb sistemes operatius de contenidors similars és que Amazon ha optimitzat Bottlerocket per executar-se a AWS i integrar-se amb altres serveis d'AWS.

L'orquestrador de contenidors més popular és Kubernetes, de manera que AWS ha introduït la integració amb el seu propi servei Enterprise Kubernetes (EKS). Les eines d'orquestració vénen en un contenidor de control independent recipient-control-cohet-ampolla, que s'habilita per defecte i es gestiona mitjançant l'API i l'Agent SSM d'AWS.

Serà interessant veure si Bottlerocket s'enlaira, donat el fracàs d'algunes iniciatives similars en el passat. Per exemple, PhotonOS de Vmware va resultar no ser reclamat, i RedHat va comprar CoreOS i va tancar el projecte, que va ser considerat un pioner en el camp.

La integració de Bottlerocket als serveis d'AWS fa que aquest sistema sigui únic a la seva manera. Aquesta és potser la raó principal per la qual alguns usuaris poden preferir Bottlerocket a altres distribucions com CoreOS o Alpine. El sistema està dissenyat inicialment per funcionar amb EKS i ECS, però repetim que això no és necessari. En primer lloc, Bottlerocket pot muntar per tu mateix i utilitzar-lo, per exemple, com a solució allotjada. En segon lloc, els usuaris d'EKS i ECS encara tindran la possibilitat de triar el seu sistema operatiu.

El codi font de Bottlerocket es publica a GitHub sota la llicència Apache 2.0. Els desenvolupadors ja ho han fet respondre als informes d'errors i a les sol·licituds de funcions.

Sobre els drets de publicitat

VDSina ofertes VDS amb pagament diari. És possible instal·lar qualsevol sistema operatiu, inclòs des de la vostra pròpia imatge. Cada servidor està connectat a un canal d'Internet de 500 Megabits i està protegit d'atacs DDoS de forma gratuïta!

S'ha llançat una distribució minimalista de Linux Bottlerocket per executar contenidors. El més important d'ell

Font: www.habr.com

Afegeix comentari