Контейнерлерді іске қосу үшін минималистік Linux дистрибуциясы Bottlerocket шығарылды. Ол туралы ең маңыздысы

Контейнерлерді іске қосу үшін минималистік Linux дистрибуциясы Bottlerocket шығарылды. Ол туралы ең маңыздысы

Амазонка жариялады соңғы шығарылым туралы Бөтелке — контейнерлерді іске қосу және оларды тиімді басқару үшін мамандандырылған дистрибуция.

Bottlerocket (айтпақшы, кішкентай үйде жасалған қара ұнтақ зымырандарына берілген атау) контейнерлерге арналған бірінші ОЖ емес, бірақ ол AWS қызметтерімен әдепкі интеграцияның арқасында кең тарауы мүмкін. Жүйе Amazon бұлтына бағытталған болса да, ашық бастапқы код оны кез келген жерде құруға мүмкіндік береді: жергілікті серверде, Raspberry Pi-де, кез келген бәсекелес бұлтта және тіпті контейнерсіз ортада.

Бұл Red Hat көмген CoreOS дистрибутивін толығымен алмастырады.

Шын мәнінде, Amazon Web Services бөлімінде жақында екінші нұсқасы шыққан Amazon Linux бар: бұл Docker контейнерінде немесе Linux KVM, Microsoft Hyper-V және VMware көмегімен іске қосуға болатын жалпы мақсаттағы тарату. ESXi гипервизорлары. Ол AWS бұлтында жұмыс істеу үшін оңтайландырылған, бірақ Bottlerocket шығарылымымен барлығына қауіпсіз, заманауи және ресурстарды азырақ пайдаланатын жаңа жүйеге жаңарту ұсынылады.

AWS Bottlerocket туралы хабарлады наурыз айындағы 2020. Ол CoreOS, Rancher OS және Project Atomic-ке шабыт көзі ретінде сілтеме жасай отырып, бұл бірінші «контейнерлерге арналған Linux» емес екенін бірден мойындады. Әзірлеушілер операциялық жүйе «ұзақ уақыт бойы Amazon ауқымында өндірістік қызметтерді жүргізуден алған сабақтарымыздың нәтижесі және контейнерлерді қалай іске қосу туралы соңғы алты жылда жинаған тәжірибеміз» деп жазды.

Төтенше минимализм

Linux контейнерлерді іске қосу үшін қажет емес барлық нәрселерден айырылған. Бұл дизайн, компанияның айтуынша, шабуылдың бетін азайтады.

Бұл базалық жүйеде аз пакеттер орнатылғанын білдіреді, бұл ОЖ-ны күтіп ұстауды және жаңартуды жеңілдетеді, сондай-ақ ресурстарды пайдалануды азайта отырып, тәуелділіктерге байланысты проблемалардың ықтималдығын азайтады. Негізінде, мұнда бәрі бөлек контейнерлерде жұмыс істейді, ал негізгі жүйе іс жүзінде жалаңаш.

Amazon сонымен қатар барлық қабықшалар мен аудармашыларды алып тастап, оларды пайдалану немесе пайдаланушылардың артықшылықтарды кездейсоқ ұлғайту қаупін болдырмайды. Минимализм мен қауіпсіздік үшін негізгі кескінге командалық қабық, SSH сервері немесе Python сияқты түсіндірілетін тілдер кірмейді. Әкімші құралдары әдепкі бойынша өшірілген бөлек қызмет көрсету контейнеріне орналастырылған.

Жүйе екі жолмен басқарылады: API және оркестр арқылы.

Бағдарламалық құралдың жеке бөліктерін жаңартатын пакет менеджерінің орнына Bottlerocket файлдық жүйенің толық кескінін жүктеп алып, оны қайта жүктейді. Жүктеме сәтсіз болса, ол автоматты түрде кері қайтарылады және жұмыс жүктемесінің сәтсіздігі кері қайтаруды қолмен іске қосуы мүмкін (API арқылы пәрмен).

Негіздеме TUF (Жаңарту шеңбері) суретке негізделген жаңартуларды балама немесе «ажыратылған» бөлімдерге жүктейді. Жүйе үшін екі диск бөлімі бөлінген, олардың біреуі белсенді жүйені қамтиды, ал жаңарту екіншісіне көшіріледі. Бұл жағдайда түбірлік бөлім тек оқуға арналған режимде орнатылады, ал бөлім /etc жедел жадтағы файлдық жүйемен орнатылған tmpfs және қайта іске қосқаннан кейін бастапқы күйін қалпына келтіреді. Конфигурация файлдарын тікелей өзгерту /etc қолдау көрсетілмейді: параметрлерді сақтау үшін API пайдалану керек немесе функцияны бөлек контейнерлерге жылжыту керек.

Контейнерлерді іске қосу үшін минималистік Linux дистрибуциясы Bottlerocket шығарылды. Ол туралы ең маңыздысы
API жаңарту схемасы

Қауіпсіздік

Контейнерлер Linux ядросының стандартты механизмдері – топтар, аттар кеңістігі және seccomp арқылы жасалады және мәжбүрлі қол жеткізуді басқару жүйесі ретінде пайдаланылады, яғни қосымша оқшаулау үшін SELinux «мәжбүрлеу» режимінде.

Әдепкі бойынша, саясаттар контейнерлер мен ядро ​​арасында ресурстарды ортақ пайдалану үшін қосылады. Екілік файлдар пайдаланушылардың немесе бағдарламалардың оларды орындауына жол бермеу үшін жалаушалармен қорғалған. Егер біреу файлдық жүйеге кірсе, Bottlerocket енгізілген өзгерістерді тексеру және қадағалау құралын ұсынады.

«Тексерілген жүктеу» режимі құрылғы-мапер-вертит функциясы арқылы жүзеге асырылады (dm-шындық), ол жүктеу кезінде түбірлік бөлімнің тұтастығын тексереді. AWS dm-verity файлын «негізгі жүйелік бағдарламалық құралды қайта жазу сияқты операциялық жүйеде зиянды бағдарламаның іске қосылуын болдырмау үшін тұтастықты тексеруді қамтамасыз ететін Linux ядросының мүмкіндігі» ретінде сипаттайды.

Сондай-ақ жүйеде сүзгі бар eGMP (ұзартылған BPF, Алексей Старовойтов әзірлеген), бұл ядро ​​модульдерін төменгі деңгейдегі жүйе операциялары үшін қауіпсіз BPF бағдарламаларымен ауыстыруға мүмкіндік береді.

Орындау үлгісі
Пайдаланушы анықталды
Жинақ
Қауіпсіздік
Сәтсіздік режимі
Ресурстарға қол жеткізу

Пайдаланушы
шақыру
иә
кез келген
пайдаланушы құқықтары
орындауды үзу
жүйелік шақыру, ақау

Ядро
шақыру
жоқ
статикалық
жоқ
ядролық дүрбелең
түзу

GMP
событие
иә
JIT, CO-RE
тексеру, JIT
қате туралы хабар
шектеулі көмекшілер

BPF қарапайым пайдаланушы немесе ядро ​​деңгейі кодынан қалай ерекшеленеді көзі

AWS Bottlerocket «әкімшілік артықшылықтары бар өндірістік серверлерге қосылуға жол бермеу арқылы қауіпсіздікті одан әрі жақсартатын операциялық модельді қолданады» және «әрбір жеке хостты бақылау шектелген үлкен таратылған жүйелер үшін қолайлы» деді.

Жүйе әкімшілері үшін әкімші контейнері берілген. Бірақ AWS әкімшіге Bottlerocket ішінде жиі жұмыс істеу қажет емес деп санайды: "Бөлек Bottlerocket данасына кіру әрекеті сирек операцияларға арналған: кеңейтілген жөндеу және ақаулықтарды жою," жазыңыз әзірлеушілер.

Тот тілі

Ядроның үстіндегі ОЖ құралдары негізінен Rust тілінде жазылған. Бұл тіл өзінің табиғаты бойынша жадқа қауіпті қол жеткізу ықтималдығын азайтады, және де жіптер арасындағы жарыс жағдайларын жояды.

Құру кезінде жалаушалар әдепкі бойынша қолданылады --enable-default-pie и --enable-default-ssp орындалатын файлдардың мекенжай кеңістігін рандомизациялауды қосу үшін (позициядан тәуелсіз орындалатын файл, PIE) және стектің толып кетуінен қорғау.

C/C++ бумалары үшін қосымша жалаушалар қамтылған -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Rust және C/C++ басқа, кейбір пакеттер Go тілінде жазылған.

AWS қызметтерімен интеграция

Ұқсас контейнерлік операциялық жүйелерден айырмашылығы - Amazon AWS жүйесінде жұмыс істеу және басқа AWS қызметтерімен біріктіру үшін Bottlerocket-ті оңтайландырды.

Ең танымал контейнер оркестрі - Kubernetes, сондықтан AWS өзінің Enterprise Kubernetes қызметімен (EKS) интеграцияны енгізді. Оркестрлік құралдар бөлек басқару контейнерінде келеді бөтелке-бақылау-контейнер, ол әдепкі бойынша қосылады және API және AWS SSM агенті арқылы басқарылады.

Бұрынғы кейбір осындай бастамалардың сәтсіздігін ескере отырып, Bottlerocket ұшып кететінін көру қызықты болады. Мысалы, Vmware ұсынған PhotonOS талап етілмеген болып шықты, ал RedHat CoreOS және сатып алды. жобаны жапты, бұл салада пионер болып саналған.

Bottlerocket-тің AWS қызметтеріне интеграциясы бұл жүйені өзінше бірегей етеді. Бұл кейбір пайдаланушылардың CoreOS немесе Alpine сияқты басқа дистрибутивтерден Bottlerocket-ті таңдауының басты себебі болуы мүмкін. Жүйе бастапқыда EKS және ECS-пен жұмыс істеуге арналған, бірақ біз бұл қажет емес екенін қайталаймыз. Біріншіден, Bottlerocket мүмкін өзіңіз жинаңыз және оны, мысалы, орналастырылған шешім ретінде пайдаланыңыз. Екіншіден, EKS және ECS пайдаланушылары өздерінің ОЖ таңдау мүмкіндігіне ие болады.

Bottlerocket бастапқы коды GitHub сайтында Apache 2.0 лицензиясы бойынша жарияланған. Әзірлеушілер қазірдің өзінде бар қате туралы есептерге және мүмкіндік сұрауларына жауап беру.

Жарнама құқықтары туралы

VDSina ұсыныстар Күнделікті төлеммен VDS. Кез келген операциялық жүйені, соның ішінде өзіңіздің суретіңізден орнатуға болады. Әрбір сервер 500 мегабиттік интернет арнасына қосылған және DDoS шабуылдарынан тегін қорғалған!

Контейнерлерді іске қосу үшін минималистік Linux дистрибуциясы Bottlerocket шығарылды. Ол туралы ең маңыздысы

Ақпарат көзі: www.habr.com

пікір қалдыру