కంటైనర్‌లను అమలు చేయడానికి మినిమలిస్టిక్ Linux పంపిణీ బాటిల్‌రాకెట్ విడుదల చేయబడింది. అతని గురించి చాలా ముఖ్యమైన విషయం

కంటైనర్‌లను అమలు చేయడానికి మినిమలిస్టిక్ Linux పంపిణీ బాటిల్‌రాకెట్ విడుదల చేయబడింది. అతని గురించి చాలా ముఖ్యమైన విషయం

అమెజాన్ ప్రకటించింది చివరి విడుదల గురించి బాటిల్‌రాకెట్ - కంటైనర్లను అమలు చేయడానికి మరియు వాటిని సమర్థవంతంగా నిర్వహించడానికి ప్రత్యేకమైన పంపిణీ.

బాటిల్‌రాకెట్ (మార్గం ద్వారా, ఇంట్లో తయారుచేసిన చిన్న బ్లాక్ పౌడర్ రాకెట్‌లను ఇలా పిలుస్తారు) కంటైనర్‌ల కోసం మొదటి OS ​​కాదు, అయితే AWS సేవలతో డిఫాల్ట్ ఇంటిగ్రేషన్ కారణంగా ఇది విస్తృతంగా వ్యాపించే అవకాశం ఉంది. సిస్టమ్ అమెజాన్ క్లౌడ్‌పై దృష్టి కేంద్రీకరించినప్పటికీ, ఓపెన్ సోర్స్ కోడ్ దీన్ని ఎక్కడైనా నిర్మించడానికి మిమ్మల్ని అనుమతిస్తుంది: స్థానికంగా సర్వర్‌లో, రాస్ప్‌బెర్రీ పైలో, ఏదైనా పోటీ క్లౌడ్‌లో మరియు కంటైనర్‌లెస్ వాతావరణంలో కూడా.

ఇది Red Hat పాతిపెట్టిన CoreOS పంపిణీకి తగిన ప్రత్యామ్నాయం.

నిజానికి, Amazon Web Services ఇప్పటికే Amazon Linuxని కలిగి ఉంది, ఇది ఇటీవల వెర్షన్ XNUMXలో విడుదల చేయబడింది, ఇది ఒక సాధారణ-ప్రయోజన పంపిణీని డాకర్ కంటైనర్‌లో లేదా Linux KVM, Microsoft Hyper-V మరియు VMware ESXi హైపర్‌వైజర్‌లతో అమలు చేయవచ్చు. ఇది AWS క్లౌడ్‌లో అమలు చేయడానికి ఆప్టిమైజ్ చేయబడింది, అయితే బాటిల్‌రాకెట్ విడుదలతో, ప్రతి ఒక్కరూ మరింత సురక్షితమైన, ఆధునికమైన మరియు తక్కువ వనరులను వినియోగించే కొత్త సిస్టమ్‌కి అప్‌గ్రేడ్ చేయమని ప్రోత్సహించబడ్డారు.

AWS బాటిల్‌రాకెట్‌ని ప్రకటించింది మార్చి 2020లో. CoreOS, Rancher OS మరియు ప్రాజెక్ట్ అటామిక్‌లను ప్రేరణగా పేర్కొంటూ ఇది మొదటి "Linux for Containers" కాదని ఆమె వెంటనే అంగీకరించింది. డెవలపర్లు ఈ ఆపరేటింగ్ సిస్టమ్ "అమెజాన్-స్కేల్ ఉత్పత్తి సేవలను చాలా కాలం పాటు అమలు చేయడం మరియు కంటైనర్‌లను ఎలా నడపాలి అనే దానిపై గత ఆరు సంవత్సరాలుగా మేము పొందిన అనుభవం నుండి నేర్చుకున్న పాఠాల ఫలితం" అని రాశారు.

విపరీతమైన మినిమలిజం

కంటైనర్‌లను అమలు చేయడానికి అవసరం లేని అన్నిటి నుండి Linux తీసివేయబడింది. ఈ డిజైన్, సంస్థ ప్రకారం, దాడి ఉపరితలాన్ని తగ్గిస్తుంది.

దీని అర్థం బేస్ సిస్టమ్‌లో తక్కువ ప్యాకేజీలు ఇన్‌స్టాల్ చేయబడ్డాయి, ఇది OSని నిర్వహించడం మరియు నవీకరించడాన్ని సులభతరం చేస్తుంది మరియు డిపెండెన్సీల కారణంగా సమస్యల సంభావ్యతను తగ్గిస్తుంది, వనరుల వినియోగాన్ని తగ్గిస్తుంది. సూత్రప్రాయంగా, ఇక్కడ ప్రతిదీ ప్రత్యేక కంటైనర్లలో పని చేస్తుంది మరియు బేస్ సిస్టమ్ ఆచరణాత్మకంగా బేర్గా ఉంటుంది.

Amazon అన్ని షెల్‌లు మరియు ఇంటర్‌ప్రెటర్‌లను కూడా తీసివేసింది, వాటిని ఉపయోగించడం లేదా అనుకోకుండా వినియోగదారు అధికారాలను పెంచే ప్రమాదాన్ని తొలగిస్తుంది. బేస్ ఇమేజ్ షెల్, SSH సర్వర్ మరియు మినిమలిజం మరియు భద్రత కోసం పైథాన్ వంటి భాషలను అన్వయిస్తుంది. అడ్మినిస్ట్రేటర్ కోసం సాధనాలు ప్రత్యేక సేవా కంటైనర్‌లో ఉంచబడతాయి, ఇది డిఫాల్ట్‌గా నిలిపివేయబడుతుంది.

సిస్టమ్ నిర్వహణ రెండు విధాలుగా అందించబడుతుంది: API మరియు ఆర్కెస్ట్రేషన్ ద్వారా.

వ్యక్తిగత సాఫ్ట్‌వేర్ ముక్కలను అప్‌డేట్ చేసే ప్యాకేజీ మేనేజర్‌కు బదులుగా, బాటిల్‌రాకెట్ పూర్తి ఫైల్ సిస్టమ్ ఇమేజ్‌ని డౌన్‌లోడ్ చేస్తుంది మరియు దానిలోకి రీబూట్ చేస్తుంది. బూట్ వైఫల్యం సంభవించినప్పుడు, అది స్వయంచాలకంగా వెనక్కి తీసుకోబడుతుంది మరియు పనిభారం వైఫల్యం మాన్యువల్ రోల్‌బ్యాక్‌ను (API ద్వారా కమాండ్) ప్రేరేపిస్తుంది.

ఫ్రేమ్వర్క్ TUF (ది అప్‌డేట్ ఫ్రేమ్‌వర్క్) ఇమేజ్ ఆధారిత అప్‌డేట్‌లను ప్రత్యామ్నాయ లేదా "అన్‌మౌంట్" విభజనలకు డౌన్‌లోడ్ చేస్తుంది. సిస్టమ్ కోసం రెండు డిస్క్ విభజనలు కేటాయించబడ్డాయి, వాటిలో ఒకటి క్రియాశీల వ్యవస్థను కలిగి ఉంటుంది మరియు నవీకరణ రెండవదానికి కాపీ చేయబడుతుంది. ఈ సందర్భంలో, రూట్ విభజన రీడ్-ఓన్లీ మోడ్‌లో మౌంట్ చేయబడుతుంది మరియు విభజన /etc ఇన్-మెమరీ ఫైల్ సిస్టమ్‌తో మౌంట్ చేయబడింది tmpfs మరియు పునఃప్రారంభించిన తర్వాత అసలు స్థితిని పునరుద్ధరిస్తుంది. లో కాన్ఫిగరేషన్ ఫైళ్ళ యొక్క ప్రత్యక్ష మార్పు /etc మద్దతు లేదు: సెట్టింగ్‌లను సేవ్ చేయడానికి, మీరు APIని ఉపయోగించాలి లేదా ప్రత్యేక కంటైనర్‌లకు కార్యాచరణను తరలించాలి.

కంటైనర్‌లను అమలు చేయడానికి మినిమలిస్టిక్ Linux పంపిణీ బాటిల్‌రాకెట్ విడుదల చేయబడింది. అతని గురించి చాలా ముఖ్యమైన విషయం
API అప్‌గ్రేడ్ స్కీమ్

భద్రత

కంటైనర్లు సాధారణ Linux కెర్నల్ మెకానిజమ్స్ ద్వారా సృష్టించబడతాయి - cgroups, namespaces మరియు seccomp, మరియు బలవంతంగా యాక్సెస్ కంట్రోల్ సిస్టమ్‌గా, అంటే అదనపు ఐసోలేషన్ కోసం, SELinux "అమలు" మోడ్‌లో.

కంటైనర్‌లు మరియు కోర్ మధ్య వనరులను పంచుకోవడానికి విధానాలు డిఫాల్ట్‌గా ప్రారంభించబడతాయి. వినియోగదారులు లేదా ప్రోగ్రామ్‌లను అమలు చేయకుండా నిరోధించడానికి బైనరీలు ఫ్లాగ్ చేయబడతాయి. మరియు ఎవరైనా ఫైల్ సిస్టమ్‌కి వస్తే, బాటిల్‌రాకెట్ ఏదైనా మార్పులను తనిఖీ చేయడానికి మరియు ట్రాక్ చేయడానికి ఒక సాధనాన్ని అందిస్తుంది.

"ధృవీకరించబడిన బూట్" మోడ్ పరికరం-మ్యాపర్-వెరిటీ ఫంక్షన్ ద్వారా అమలు చేయబడుతుంది (dm-వెరిటీ), ఇది బూట్ సమయంలో రూట్ విభజన యొక్క సమగ్రతను తనిఖీ చేస్తుంది. AWS dm-verityని "Linux కెర్నల్‌లోని ఒక ఫీచర్‌గా వివరిస్తుంది, ఇది కోర్ సిస్టమ్ సాఫ్ట్‌వేర్‌ను ఓవర్‌రైటింగ్ చేయడం వంటి మాల్వేర్ OSలో రన్ కాకుండా నిరోధించడానికి సమగ్రతను తనిఖీ చేస్తుంది."

సిస్టమ్‌లో ఫిల్టర్ కూడా ఉంది. eGMP (విస్తరించిన BPF, అలెక్సీ స్టార్వోయిటోవ్ ద్వారా అభివృద్ధి) ఇది తక్కువ-స్థాయి సిస్టమ్ కార్యకలాపాల కోసం సురక్షితమైన BPF ప్రోగ్రామ్‌లతో కెర్నల్ మాడ్యూల్‌లను భర్తీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

అమలు నమూనా
వినియోగాదారునిచే నిర్వచించబడినది
సంగ్రహం
భద్రత
వైఫల్యం మోడ్
వనరులకు ప్రాప్యత

యూజర్
పని
అవును
ఏదైనా
వినియోగదారు హక్కులు
అమలు అంతరాయం
సిస్టమ్ కాల్, తప్పు

కోర్
పని

స్థిరమైన

కెర్నల్ భయాందోళన
నేరుగా

బిపిఎఫ్
событие
అవును
JIT, CO-RE
ధృవీకరణ, JIT
దోష సందేశం
పరిమిత సహాయకులు

BPF మరియు సాధారణ వినియోగదారు లేదా కెర్నల్ స్థాయి కోడ్ మధ్య వ్యత్యాసం, మూలం

AWS బాటిల్‌రాకెట్ "అడ్మినిస్ట్రేటర్ అధికారాలతో ఉత్పత్తి సర్వర్‌లకు కనెక్షన్‌లను నిరోధించడం ద్వారా భద్రతను మరింత మెరుగుపరిచే ఒక ఆపరేటింగ్ మోడల్‌ను అమలు చేస్తుంది" మరియు "ప్రతి హోస్ట్‌పై పరిమిత నియంత్రణ ఉన్న పెద్ద పంపిణీ వ్యవస్థలకు తగినది" అని పేర్కొంది.

సిస్టమ్ అడ్మినిస్ట్రేటర్‌ల కోసం, అడ్మినిస్ట్రేటర్ కంటైనర్ అందించబడుతుంది. కానీ అడ్మిన్ తరచుగా బాటిల్‌రాకెట్‌లో పని చేయాల్సి ఉంటుందని AWS భావించడం లేదు: "అరుదైన ఆపరేషన్‌ల కోసం ప్రత్యేక బాటిల్‌రాకెట్ ఉదాహరణకి లాగిన్ చేయడం: అధునాతన డీబగ్గింగ్ మరియు ట్రబుల్షూటింగ్" - వారు వ్రాస్తారు డెవలపర్లు.

తుప్పు భాష

కెర్నల్ పైన ఉన్న OS టూల్‌కిట్ ఎక్కువగా రస్ట్‌లో వ్రాయబడింది. ఈ భాష సహజంగానే ఉంటుంది అసురక్షిత మెమరీ యాక్సెస్ అవకాశాన్ని తగ్గిస్తుందిమరియు థ్రెడ్‌ల మధ్య జాతి పరిస్థితులను తొలగిస్తుంది.

ఫ్లాగ్‌లు డిఫాల్ట్‌గా వర్తింపజేయబడతాయి --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.

రస్ట్ మరియు C/C++ కాకుండా, కొన్ని ప్యాకేజీలు గోలో వ్రాయబడ్డాయి.

AWS సేవలతో ఏకీకరణ

సారూప్య కంటైనర్ ఆపరేటింగ్ సిస్టమ్‌ల నుండి వ్యత్యాసం ఏమిటంటే, AWSలో అమలు చేయడానికి మరియు ఇతర AWS సేవలతో అనుసంధానించడానికి Amazon Bottlerocketని ఆప్టిమైజ్ చేసింది.

అత్యంత ప్రజాదరణ పొందిన కంటైనర్ ఆర్కెస్ట్రేటర్ కుబెర్నెటెస్, కాబట్టి AWS దాని స్వంత Enterprise Kubernetes సర్వీస్ (EKS)తో ఏకీకరణను అమలు చేసింది. ఆర్కెస్ట్రేషన్ సాధనాలు ప్రత్యేక నియంత్రణ కంటైనర్‌లో వస్తాయి బాటిల్‌రాకెట్-నియంత్రణ-కంటైనర్, ఇది డిఫాల్ట్‌గా ప్రారంభించబడుతుంది మరియు API మరియు AWS SSM ఏజెంట్ ద్వారా నిర్వహించబడుతుంది.

గతంలో ఇలాంటి కొన్ని కార్యక్రమాలు విఫలమైన నేపథ్యంలో బాటిల్‌రాకెట్ టేకాఫ్ అవుతుందా అనేది ఆసక్తికరంగా ఉంటుంది. ఉదాహరణకు, Vmware నుండి PhotonOS క్లెయిమ్ చేయబడలేదు మరియు RedHat CoreOSని కొనుగోలు చేసింది మరియు ప్రాజెక్ట్‌ను మూసివేసిందిరంగంలో అగ్రగామిగా పరిగణించబడ్డాడు.

AWS సేవలతో బాటిల్‌రాకెట్ యొక్క ఏకీకరణ ఈ వ్యవస్థను దాని స్వంత మార్గంలో ప్రత్యేకంగా చేస్తుంది. కొంతమంది వినియోగదారులు CoreOS లేదా Alpine వంటి ఇతర పంపిణీల కంటే Bottlerocketని ఇష్టపడటానికి ఇది ప్రధాన కారణం కావచ్చు. సిస్టమ్ మొదట EKS మరియు ECSతో పనిచేయడానికి రూపొందించబడింది, అయితే ఇది అవసరం లేదని మేము పునరావృతం చేస్తాము. మొదట, బాటిల్‌రాకెట్ చెయ్యవచ్చు మీరే సమీకరించండి మరియు ఉదాహరణకు, హోస్ట్ చేసిన పరిష్కారంగా ఉపయోగించండి. రెండవది, EKS మరియు ECS వినియోగదారులు ఇప్పటికీ OS ఎంపికను కలిగి ఉంటారు.

Bottlerocket యొక్క సోర్స్ కోడ్ Apache 2.0 లైసెన్స్ క్రింద GitHubలో ప్రచురించబడింది. ఇప్పటికే డెవలపర్లు బగ్ నివేదికలు మరియు ఫీచర్ అభ్యర్థనలకు ప్రతిస్పందించండి.

ప్రకటనల హక్కులపై

VDSina ఆఫర్లు రోజువారీ చెల్లింపుతో VDS. మీ స్వంత చిత్రంతో సహా ఏదైనా ఆపరేటింగ్ సిస్టమ్‌ను ఇన్‌స్టాల్ చేయడం సాధ్యపడుతుంది. ప్రతి సర్వర్ 500 Mbps ఇంటర్నెట్ ఛానెల్‌కి కనెక్ట్ చేయబడింది మరియు DDoS దాడుల నుండి ఉచితంగా రక్షించబడుతుంది!

కంటైనర్‌లను అమలు చేయడానికి మినిమలిస్టిక్ Linux పంపిణీ బాటిల్‌రాకెట్ విడుదల చేయబడింది. అతని గురించి చాలా ముఖ్యమైన విషయం

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి