Usambazaji mdogo wa Linux, Bottlerocket, umetolewa kwa vyombo vya kuendesha. Jambo muhimu zaidi juu yake

Usambazaji mdogo wa Linux, Bottlerocket, umetolewa kwa vyombo vya kuendesha. Jambo muhimu zaidi juu yake

Kampuni ya Amazon alitangaza kuhusu toleo la mwisho Ufungashaji mfukoni - usambazaji maalum wa kuendesha vyombo na kusimamia kwa ufanisi.

Bottlerocket (kwa njia, jina lililopewa roketi ndogo za poda nyeusi za nyumbani) sio OS ya kwanza kwa vyombo, lakini kuna uwezekano kwamba itaenea shukrani kwa ushirikiano wa chaguo-msingi na huduma za AWS. Ingawa mfumo unalenga wingu la Amazon, msimbo wa chanzo huria unaruhusu kujengwa mahali popote: ndani ya nchi kwenye seva, kwenye Raspberry Pi, katika wingu lolote linaloshindana, na hata katika mazingira yasiyo na chombo.

Huu ni uingizwaji unaofaa kabisa wa usambazaji wa CoreOS ambao Red Hat ilizika.

Kwa kweli, kitengo cha Huduma za Wavuti cha Amazon tayari kina Amazon Linux, ambayo ilitoka hivi karibuni katika toleo lake la pili: ni usambazaji wa kusudi la jumla ambao unaweza kuendeshwa kwenye chombo cha Docker au na Linux KVM, Microsoft Hyper-V, na VMware. ESXi hypervisors. Iliboreshwa ili kuendeshwa kwenye wingu la AWS, lakini kwa kutolewa kwa Bottlerocket, kila mtu anahimizwa kupata mfumo mpya ambao ni salama zaidi, wa kisasa, na unatumia rasilimali chache.

AWS ilitangaza Bottlerocket mwezi Machi 2020. Alikubali mara moja kwamba hii sio "Linux ya kwanza ya kontena," akitaja CoreOS, Rancher OS na Project Atomic kama vyanzo vya msukumo. Watengenezaji waliandika kwamba mfumo wa uendeshaji ni "matokeo ya masomo ambayo tumejifunza kutokana na kuendesha huduma za uzalishaji kwa kiwango cha Amazon kwa muda mrefu, na uzoefu ambao tumepata katika miaka sita iliyopita kuhusu jinsi ya kuendesha vyombo."

minimalism iliyokithiri

Linux imeondolewa kila kitu ambacho hakihitajiki kuendesha vyombo. Ubunifu huu, kulingana na kampuni, hupunguza uso wa shambulio.

Hii ina maana kwamba vifurushi vichache vimewekwa kwenye mfumo wa msingi, ambayo inafanya iwe rahisi kudumisha na kusasisha OS, na pia hupunguza uwezekano wa matatizo kutokana na utegemezi, kupunguza matumizi ya rasilimali. Kimsingi, kila kitu hapa hufanya kazi ndani ya vyombo tofauti, na mfumo wa msingi ni wazi.

Amazon pia imeondoa makombora na wakalimani wote, na hivyo kuondoa hatari ya wao kutumiwa au watumiaji kuongezeka kwa bahati mbaya marupurupu. Kwa ajili ya minimalism na usalama, picha ya msingi haijumuishi ganda la amri, seva ya SSH, au lugha zilizofasiriwa kama Python. Zana za msimamizi zimewekwa kwenye chombo tofauti cha huduma, ambacho kimezimwa kwa chaguo-msingi.

Mfumo unasimamiwa kwa njia mbili: kupitia API na orchestration.

Badala ya kidhibiti kifurushi ambacho husasisha vipande vya programu mahususi, Bottlerocket hupakua picha kamili ya mfumo wa faili na kuwasha upya ndani yake. Mzigo usipofaulu, hurejeshwa kiotomatiki, na kutofaulu kwa mzigo kunaweza kusababisha urejeshaji nyuma (amri kupitia API).

Mfumo TUF (Mfumo wa Usasishaji) hupakua masasisho kulingana na picha ili kubadilisha sehemu au "zisizowekwa". Sehemu mbili za disk zimetengwa kwa mfumo, moja ambayo ina mfumo wa kazi, na sasisho linakiliwa kwa pili. Katika kesi hii, kizigeu cha mizizi kimewekwa katika hali ya kusoma tu, na kizigeu /etc imewekwa na mfumo wa faili kwenye RAM tmpfs na kurejesha hali ya asili baada ya kuanza upya. Marekebisho ya moja kwa moja ya faili za usanidi katika /etc haitumiki: ili kuhifadhi mipangilio unapaswa kutumia API au kusogeza utendakazi kwenye vyombo tofauti.

Usambazaji mdogo wa Linux, Bottlerocket, umetolewa kwa vyombo vya kuendesha. Jambo muhimu zaidi juu yake
Mpango wa sasisho la API

usalama

Vyombo huundwa na mifumo ya kawaida ya kernel ya Linux - vikundi, nafasi za majina na seccomp, na hutumiwa kama mfumo wa kudhibiti ufikiaji wa kulazimishwa, ambayo ni, kwa kutengwa kwa ziada. SELinux katika hali ya "kutekeleza".

Kwa chaguo-msingi, sera huwezeshwa kushiriki rasilimali kati ya kontena na kokwa. Binari zinalindwa kwa bendera ili kuzuia watumiaji au programu kuzitekeleza. Na ikiwa mtu atafika kwenye mfumo wa faili, Bottlerocket hutoa zana ya kuangalia na kufuatilia mabadiliko yoyote yaliyofanywa.

Hali ya "kuanzisha iliyothibitishwa" inatekelezwa kupitia kitendakazi cha uthibitishaji wa ramani ya kifaa (dm-ukweli), ambayo huangalia uadilifu wa kizigeu cha mizizi wakati wa buti. AWS inafafanua dm-verity kama "kipengele cha kinu cha Linux ambacho hutoa ukaguzi wa uadilifu ili kuzuia programu hasidi kufanya kazi kwenye OS, kama vile kubatilisha programu ya msingi ya mfumo."

Pia kuna kichujio kwenye mfumo eGMP (BPF iliyopanuliwa, Iliyoundwa na Alexey Starovoitov), ambayo inaruhusu moduli za kernel kubadilishwa na mipango salama zaidi ya BPF kwa uendeshaji wa mfumo wa kiwango cha chini.

Mfano wa utekelezaji
Mtumiaji amefafanuliwa
Mkusanyiko
usalama
Hali ya kushindwa
Upatikanaji wa rasilimali

Mtumiaji
kazi
ndiyo
yoyote
haki za mtumiaji
kukatiza utekelezaji
simu ya mfumo, kosa

Cha msingi
kazi
hakuna
tuli
hakuna
hofu ya kernel
прямой

BPF
tukio
ndiyo
JIT, CO-RE
uthibitishaji, JIT
ujumbe wa makosa
wasaidizi mdogo

Jinsi BPF inavyotofautiana na nambari ya kiwango cha mtumiaji au kernel chanzo

AWS ilisema Bottlerocket "hutumia modeli ya uendeshaji ambayo huongeza usalama zaidi kwa kuzuia miunganisho kwenye seva za uzalishaji zilizo na upendeleo wa kiutawala" na "inafaa kwa mifumo mikubwa iliyosambazwa ambapo udhibiti wa kila mwenyeji ni mdogo."

Chombo cha msimamizi hutolewa kwa wasimamizi wa mfumo. Lakini AWS haifikirii msimamizi mara nyingi atahitaji kufanya kazi ndani ya Bottlerocket: "Kitendo cha kuingia kwenye mfano tofauti wa Bottlerocket kinakusudiwa kwa shughuli zisizo za kawaida: utatuzi wa hali ya juu na utatuzi," kuandika watengenezaji.

Lugha ya kutu

Ala ya OS juu ya kernel imeandikwa zaidi kwa Rust. Lugha hii ni kwa asili yake hupunguza uwezekano wa ufikiaji usio salama wa kumbukumbuNa huondoa hali ya mbio kati ya nyuzi.

Bendera hutumiwa kwa chaguo-msingi wakati wa kujenga --enable-default-pie ΠΈ --enable-default-ssp kuwezesha ujanibishaji wa nafasi ya anwani ya faili zinazoweza kutekelezwa (nafasi-huru inayoweza kutekelezwa, PIE) na ulinzi wa kufurika kwa rafu.

Kwa vifurushi vya C/C++, bendera za ziada zimejumuishwa -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ΠΈ -fstack-clash-protection.

Kando na Rust na C/C++, vifurushi vingine vimeandikwa katika Go.

Ujumuishaji na huduma za AWS

Tofauti kutoka kwa mifumo ya uendeshaji ya kontena sawa ni kwamba Amazon imeboresha Bottlerocket kufanya kazi kwenye AWS na kuunganishwa na huduma zingine za AWS.

Okestra ya kontena maarufu zaidi ni Kubernetes, kwa hivyo AWS imeanzisha ushirikiano na Enterprise Kubernetes Service yake (EKS). Zana za upangaji huja katika chombo tofauti cha kudhibiti chombo cha kudhibiti chupa, ambayo imewezeshwa kwa chaguomsingi na kusimamiwa kupitia API na AWS Agent SSM.

Itafurahisha kuona kama Bottlerocket itaanza, kutokana na kushindwa kwa baadhi ya mipango kama hiyo hapo awali. Kwa mfano, PhotonOS kutoka Vmware iligeuka kuwa haijadaiwa, na RedHat ilinunua CoreOS na alifunga mradi, ambaye alionwa kuwa painia shambani.

Ujumuishaji wa Bottlerocket katika huduma za AWS hufanya mfumo huu kuwa wa kipekee kwa njia yake yenyewe. Labda hii ndio sababu kuu kwa nini watumiaji wengine wanaweza kupendelea Bottlerocket kuliko distros zingine kama CoreOS au Alpine. Mfumo uliundwa awali kufanya kazi na EKS na ECS, lakini tunarudia kwamba hii sio lazima. Kwanza, Bottlerocket inaweza kusanya mwenyewe na utumie, kwa mfano, kama suluhisho la mwenyeji. Pili, watumiaji wa EKS na ECS bado watakuwa na uwezo wa kuchagua Mfumo wao wa Uendeshaji.

Nambari ya chanzo cha Bottlerocket imechapishwa kwenye GitHub chini ya leseni ya Apache 2.0. watengenezaji tayari jibu ripoti za hitilafu na maombi ya vipengele.

Haki za Matangazo

VDSina inatoa VDS na malipo ya kila siku. Inawezekana kufunga mfumo wowote wa uendeshaji, ikiwa ni pamoja na kutoka kwa picha yako mwenyewe. Kila seva imeunganishwa kwenye chaneli ya Mtandao ya Megabiti 500 na inalindwa dhidi ya mashambulizi ya DDoS bila malipo!

Usambazaji mdogo wa Linux, Bottlerocket, umetolewa kwa vyombo vya kuendesha. Jambo muhimu zaidi juu yake

Chanzo: mapenzi.com

Kuongeza maoni