Ib qho minimalistic Linux faib, Bottlerocket, tau raug tso tawm rau kev khiav ntim. Qhov tseem ceeb tshaj plaws txog nws

Ib qho minimalistic Linux faib, Bottlerocket, tau raug tso tawm rau kev khiav ntim. Qhov tseem ceeb tshaj plaws txog nws

Amazon tuam txhab tshaj tawm txog qhov kev tso tawm zaum kawg Lub hleb - ib qho kev faib tshwj xeeb rau kev khiav ntim thiab tswj tau zoo.

Bottlerocket (los ntawm txoj kev, lub npe muab rau me me hauv tsev dub hmoov foob pob hluav taws) tsis yog thawj OS rau cov thawv, tab sis nws zoo li nws yuav dhau los ua qhov dav ua tsaug rau kev koom ua ke nrog AWS cov kev pabcuam. Txawm hais tias lub kaw lus tau tsom mus rau Amazon huab, qhov qhib qhov chaws tso cai rau nws tsim nyob txhua qhov chaw: hauv zos ntawm tus neeg rau zaub mov, ntawm Raspberry Pi, hauv huab sib tw, thiab txawm nyob hauv ib puag ncig tsis muaj ntim.

Qhov no yog qhov tsim nyog hloov pauv rau CoreOS faib uas Red Hat faus.

Qhov tseeb, Amazon Web Services division twb muaj Amazon Linux, uas tsis ntev los no tau tawm hauv nws qhov thib ob version: nws yog qhov kev faib tawm dav dav uas tuaj yeem khiav hauv Docker ntim lossis nrog Linux KVM, Microsoft Hyper-V, thiab VMware ESXi hypervisors. Nws tau ua kom zoo rau kev khiav ntawm AWS huab, tab sis nrog kev tso tawm ntawm Bottlerocket, txhua tus tau txhawb kom hloov mus rau ib qho tshiab uas muaj kev nyab xeeb dua, niaj hnub, thiab siv cov peev txheej tsawg dua.

AWS tshaj tawm Bottlerocket hauv lub Peb Hlis 2020. Nws tam sim ntawd lees paub tias qhov no tsis yog thawj "Linux rau ntim," hais txog CoreOS, Rancher OS thiab Project Atomic raws li qhov chaw ntawm kev tshoov siab. Cov neeg tsim tawm tau sau tias qhov kev ua haujlwm yog "qhov tshwm sim ntawm cov lus qhia uas peb tau kawm los ntawm kev khiav cov kev pabcuam tsim khoom ntawm Amazon lub sijhawm ntev, thiab cov kev paub uas peb tau txais hauv rau xyoo dhau los hais txog yuav ua li cas khiav ntim."

Heev minimalism

Linux raug tshem tawm txhua yam uas tsis xav tau los khiav ntim. Qhov kev tsim no, raws li lub tuam txhab, txo qhov chaw nres.

Qhov no txhais tau hais tias tsawg dua pob khoom tau nruab rau hauv lub hauv paus system, uas ua rau nws yooj yim rau kev tswj hwm thiab hloov kho OS, thiab tseem txo cov teeb meem tshwm sim vim muaj kev vam khom, txo kev siv peev txheej. Yeej, txhua yam ntawm no ua haujlwm hauv cov thawv cais, thiab lub hauv paus system yog xyaum liab qab.

Amazon kuj tau tshem tawm tag nrho cov plhaub thiab cov neeg txhais lus, tshem tawm txoj kev pheej hmoo ntawm lawv raug siv lossis cov neeg siv yuam kev nce kev cai. Rau lub hom phiaj ntawm minimalism thiab kev ruaj ntseg, cov duab hauv paus tsis suav nrog lub plhaub hais kom ua, SSH server, lossis txhais lus zoo li Python. Cov cuab yeej tswj hwm tau muab tso rau hauv ib lub thawv kev pabcuam cais, uas yog neeg xiam oob qhab los ntawm lub neej ntawd.

Lub kaw lus yog tswj nyob rau hauv ob txoj kev: los ntawm API thiab orchestration.

Hloov chaw tus thawj tswj pob uas hloov kho ib qho ntawm cov software, Bottlerocket rub tawm cov duab ua tiav cov ntaub ntawv thiab rov pib dua rau hauv nws. Yog tias qhov tsis ua haujlwm, nws yuav rov qab rov qab, thiab kev ua haujlwm tsis ua haujlwm tuaj yeem ua rau rov qab los ntawm tus kheej (kev txib ntawm API).

Lub moj khaum TUF (Txoj Kev Hloov Kho Tshiab) rub tawm cov duab-raws li kev hloov tshiab rau kev hloov lossis "unmounted" partitions. Ob lub disk faib tau faib rau lub kaw lus, ib qho ntawm cov uas muaj cov kab ke nquag, thiab qhov hloov tshiab tau theej rau qhov thib ob. Hauv qhov no, lub hauv paus muab faib yog mounted nyob rau hauv hom nyeem nkaus xwb, thiab muab faib /etc mounted nrog cov ntaub ntawv system hauv RAM tmpfs thiab restores lub qub qub tom qab ib tug restart. Kev hloov kho ncaj qha ntawm cov ntaub ntawv teeb tsa hauv /etc tsis txaus siab: txhawm rau txuag chaw koj yuav tsum siv API lossis txav cov haujlwm ua haujlwm rau hauv cov thawv cais.

Ib qho minimalistic Linux faib, Bottlerocket, tau raug tso tawm rau kev khiav ntim. Qhov tseem ceeb tshaj plaws txog nws
API hloov tshiab tswvyim

Kev ruaj ntseg

Cov thawv ntim tau tsim los ntawm cov txheej txheem txheej txheem ntawm Linux ntsiav - cgroups, namespaces thiab seccomp, thiab raug siv los ua qhov yuam kev nkag mus, uas yog, rau kev sib cais ntxiv. SELinux hauv "kev tswj hwm" hom.

Los ntawm lub neej ntawd, txoj cai tau qhib kom muab cov peev txheej ntawm cov thawv ntim khoom thiab cov ntsiav. Binaries muaj kev tiv thaiv nrog tus chij los tiv thaiv cov neeg siv lossis cov kev pab cuam los ntawm kev tua lawv. Thiab yog tias ib tus tau mus rau cov ntaub ntawv kaw lus, Bottlerocket muaj cov cuab yeej los xyuas thiab taug qab cov kev hloov pauv tau ua.

Hom "pom tseeb khau raj" yog siv los ntawm cov cuab yeej-mapper-verity muaj nuj nqi (dm-vim), uas kuaj xyuas qhov kev ncaj ncees ntawm cov hauv paus muab faib thaum lub caij khau raj. AWS piav qhia txog dm-verity li "tus yam ntxwv ntawm Linux kernel uas muab kev kuaj xyuas kev ncaj ncees los tiv thaiv malware los ntawm kev khiav ntawm OS, xws li overwriting core system software."

Kuj tseem muaj lub lim dej hauv qhov system eBPF ua (Ntxiv BPF, tsim los ntawm Alexey Starovoitov), uas tso cai rau kernel modules hloov nrog cov kev pabcuam BPF ruaj ntseg dua rau kev ua haujlwm qis.

Kev Ua Qauv
Tus neeg siv txhais
Muab tso ua ke
Kev ruaj ntseg
Ua tsis tiav hom
Nkag mus rau cov peev txheej

Cov neeg siv
hauj lwm
yog
yam
cov neeg siv txoj cai
cuam ​​tshuam kev ua haujlwm
system hu, txhaum

Tub ntxhais
hauj lwm
tsis muaj
zoo li qub
tsis muaj
kernel ceeb
ncaj

GMP
событиС
yog
JIT, CO-RE
kev lees paub, JIT
lus yuam kev
cov neeg pab tsawg

Yuav ua li cas BPF txawv ntawm cov neeg siv li niaj zaus lossis cov kab ke hauv qib qhov chaw

AWS tau hais tias Bottlerocket "ua haujlwm tus qauv ua haujlwm uas ua rau muaj kev ruaj ntseg ntxiv los ntawm kev tiv thaiv kev sib txuas rau cov servers ntau lawm nrog cov cai tswj hwm" thiab "tsim nyog rau cov kev faib loj loj uas tswj hwm txhua tus tswv tsev yog txwv."

Ib lub thawv tswj hwm yog muab rau cov tswj hwm qhov system. Tab sis AWS tsis xav tias tus thawj tswj hwm feem ntau yuav tsum tau ua haujlwm hauv Bottlerocket: "Kev txiav txim siab nkag mus rau hauv ib qho piv txwv ntawm Bottlerocket yog npaj rau kev ua haujlwm tsis tu ncua: kev debugging siab heev thiab kev daws teeb meem," sau ntawv tus tsim tawm.

Lus Askiv

OS ntsuas nyob rau sab saum toj ntawm cov ntsiav feem ntau yog sau hauv Rust. Cov lus no yog los ntawm nws qhov xwm txheej txo qhov ua tau ntawm kev nkag mus rau lub cim xeeb tsis zooThiab tshem tawm kev sib tw ntawm cov xov.

Cov chij raug siv los ntawm lub neej ntawd thaum lub tsev --enable-default-pie ΠΈ --enable-default-ssp los pab kom randomization ntawm qhov chaw nyob ntawm cov ntaub ntawv executable (txoj hauj lwm-yooj yim executable, PIE) thiab pawg tiv thaiv kev tiv thaiv.

Rau cov pob C / C ++, cov chij ntxiv suav nrog -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ΠΈ -fstack-clash-protection.

Dhau li ntawm Rust thiab C / C ++, qee lub pob tau sau rau hauv Go.

Integration with AWS services

Qhov txawv ntawm cov thawv ntim zoo sib xws yog tias Amazon tau ua kom zoo dua Bottlerocket kom khiav ntawm AWS thiab koom nrog lwm cov kev pabcuam AWS.

Lub thawv nrov tshaj plaws orchestrator yog Kubernetes, yog li AWS tau qhia kev koom ua ke nrog nws tus kheej Enterprise Kubernetes Service (EKS). Cov cuab yeej Orchestration tuaj rau hauv ib lub thawv cais bottlerocket-control-container, uas tau qhib los ntawm lub neej ntawd thiab tswj hwm los ntawm API thiab AWS SSM Agent.

Nws yuav nthuav kom pom yog tias Bottlerocket tawm mus, muab qhov tsis ua tiav ntawm qee qhov kev pib zoo li yav dhau los. Piv txwv li, PhotonOS los ntawm Vmware tau dhau los ua qhov tsis lees paub, thiab RedHat yuav CoreOS thiab kaw qhov project, uas raug suav hais tias yog ib tug tho kev hauv teb chaws.

Bottlerocket txoj kev koom ua ke rau hauv AWS cov kev pabcuam ua rau cov kab ke no tshwj xeeb hauv nws txoj kev. Qhov no yog tej zaum qhov laj thawj tseem ceeb vim li cas qee cov neeg siv yuav nyiam Bottlerocket dua lwm qhov kev cuam tshuam xws li CoreOS lossis Alpine. Lub kaw lus tau pib tsim los ua haujlwm nrog EKS thiab ECS, tab sis peb rov hais dua tias qhov no tsis tsim nyog. Ua ntej, Bottlerocket tuaj yeem sib sau los ntawm koj tus kheej thiab siv nws, piv txwv li, raws li kev daws teeb meem. Qhov thib ob, EKS thiab ECS cov neeg siv tseem yuav muaj peev xwm xaiv lawv OS.

Lub Bottlerocket qhov chaws tau luam tawm ntawm GitHub raws li Apache 2.0 daim ntawv tso cai. Cov neeg tsim khoom twb muaj lawm teb cov lus ceeb toom kab mob thiab cov lus thov tshwj xeeb.

Rau Txoj Cai Kev Tshaj Tawm

VDSina muaj VDS nrog kev them nyiaj txhua hnub. Nws tuaj yeem txhim kho txhua qhov kev ua haujlwm, suav nrog los ntawm koj tus kheej cov duab. Txhua tus neeg rau zaub mov txuas nrog Is Taws Nem channel ntawm 500 Megabits thiab tiv thaiv los ntawm DDoS tawm tsam dawb!

Ib qho minimalistic Linux faib, Bottlerocket, tau raug tso tawm rau kev khiav ntim. Qhov tseem ceeb tshaj plaws txog nws

Tau qhov twg los: www.hab.com

Ntxiv ib saib