అమెజాన్
బాటిల్రాకెట్ (మార్గం ద్వారా, ఇంట్లో తయారుచేసిన చిన్న బ్లాక్ పౌడర్ రాకెట్లను ఇలా పిలుస్తారు) కంటైనర్ల కోసం మొదటి OS కాదు, అయితే AWS సేవలతో డిఫాల్ట్ ఇంటిగ్రేషన్ కారణంగా ఇది విస్తృతంగా వ్యాపించే అవకాశం ఉంది. సిస్టమ్ అమెజాన్ క్లౌడ్పై దృష్టి కేంద్రీకరించినప్పటికీ, ఓపెన్ సోర్స్ కోడ్ దీన్ని ఎక్కడైనా నిర్మించడానికి మిమ్మల్ని అనుమతిస్తుంది: స్థానికంగా సర్వర్లో, రాస్ప్బెర్రీ పైలో, ఏదైనా పోటీ క్లౌడ్లో మరియు కంటైనర్లెస్ వాతావరణంలో కూడా.
ఇది Red Hat పాతిపెట్టిన CoreOS పంపిణీకి తగిన ప్రత్యామ్నాయం.
నిజానికి, Amazon Web Services ఇప్పటికే Amazon Linuxని కలిగి ఉంది, ఇది ఇటీవల వెర్షన్ XNUMXలో విడుదల చేయబడింది, ఇది ఒక సాధారణ-ప్రయోజన పంపిణీని డాకర్ కంటైనర్లో లేదా Linux KVM, Microsoft Hyper-V మరియు VMware ESXi హైపర్వైజర్లతో అమలు చేయవచ్చు. ఇది AWS క్లౌడ్లో అమలు చేయడానికి ఆప్టిమైజ్ చేయబడింది, అయితే బాటిల్రాకెట్ విడుదలతో, ప్రతి ఒక్కరూ మరింత సురక్షితమైన, ఆధునికమైన మరియు తక్కువ వనరులను వినియోగించే కొత్త సిస్టమ్కి అప్గ్రేడ్ చేయమని ప్రోత్సహించబడ్డారు.
AWS బాటిల్రాకెట్ని ప్రకటించింది
విపరీతమైన మినిమలిజం
కంటైనర్లను అమలు చేయడానికి అవసరం లేని అన్నిటి నుండి Linux తీసివేయబడింది. ఈ డిజైన్, సంస్థ ప్రకారం, దాడి ఉపరితలాన్ని తగ్గిస్తుంది.
దీని అర్థం బేస్ సిస్టమ్లో తక్కువ ప్యాకేజీలు ఇన్స్టాల్ చేయబడ్డాయి, ఇది OSని నిర్వహించడం మరియు నవీకరించడాన్ని సులభతరం చేస్తుంది మరియు డిపెండెన్సీల కారణంగా సమస్యల సంభావ్యతను తగ్గిస్తుంది, వనరుల వినియోగాన్ని తగ్గిస్తుంది. సూత్రప్రాయంగా, ఇక్కడ ప్రతిదీ ప్రత్యేక కంటైనర్లలో పని చేస్తుంది మరియు బేస్ సిస్టమ్ ఆచరణాత్మకంగా బేర్గా ఉంటుంది.
Amazon అన్ని షెల్లు మరియు ఇంటర్ప్రెటర్లను కూడా తీసివేసింది, వాటిని ఉపయోగించడం లేదా అనుకోకుండా వినియోగదారు అధికారాలను పెంచే ప్రమాదాన్ని తొలగిస్తుంది. బేస్ ఇమేజ్ షెల్, SSH సర్వర్ మరియు మినిమలిజం మరియు భద్రత కోసం పైథాన్ వంటి భాషలను అన్వయిస్తుంది. అడ్మినిస్ట్రేటర్ కోసం సాధనాలు ప్రత్యేక సేవా కంటైనర్లో ఉంచబడతాయి, ఇది డిఫాల్ట్గా నిలిపివేయబడుతుంది.
సిస్టమ్ నిర్వహణ రెండు విధాలుగా అందించబడుతుంది: API మరియు ఆర్కెస్ట్రేషన్ ద్వారా.
వ్యక్తిగత సాఫ్ట్వేర్ ముక్కలను అప్డేట్ చేసే ప్యాకేజీ మేనేజర్కు బదులుగా, బాటిల్రాకెట్ పూర్తి ఫైల్ సిస్టమ్ ఇమేజ్ని డౌన్లోడ్ చేస్తుంది మరియు దానిలోకి రీబూట్ చేస్తుంది. బూట్ వైఫల్యం సంభవించినప్పుడు, అది స్వయంచాలకంగా వెనక్కి తీసుకోబడుతుంది మరియు పనిభారం వైఫల్యం మాన్యువల్ రోల్బ్యాక్ను (API ద్వారా కమాండ్) ప్రేరేపిస్తుంది.
ఫ్రేమ్వర్క్ /etc
ఇన్-మెమరీ ఫైల్ సిస్టమ్తో మౌంట్ చేయబడింది /etc
మద్దతు లేదు: సెట్టింగ్లను సేవ్ చేయడానికి, మీరు APIని ఉపయోగించాలి లేదా ప్రత్యేక కంటైనర్లకు కార్యాచరణను తరలించాలి.
API అప్గ్రేడ్ స్కీమ్
భద్రత
కంటైనర్లు సాధారణ Linux కెర్నల్ మెకానిజమ్స్ ద్వారా సృష్టించబడతాయి - cgroups, namespaces మరియు seccomp, మరియు బలవంతంగా యాక్సెస్ కంట్రోల్ సిస్టమ్గా, అంటే అదనపు ఐసోలేషన్ కోసం,
కంటైనర్లు మరియు కోర్ మధ్య వనరులను పంచుకోవడానికి విధానాలు డిఫాల్ట్గా ప్రారంభించబడతాయి. వినియోగదారులు లేదా ప్రోగ్రామ్లను అమలు చేయకుండా నిరోధించడానికి బైనరీలు ఫ్లాగ్ చేయబడతాయి. మరియు ఎవరైనా ఫైల్ సిస్టమ్కి వస్తే, బాటిల్రాకెట్ ఏదైనా మార్పులను తనిఖీ చేయడానికి మరియు ట్రాక్ చేయడానికి ఒక సాధనాన్ని అందిస్తుంది.
"ధృవీకరించబడిన బూట్" మోడ్ పరికరం-మ్యాపర్-వెరిటీ ఫంక్షన్ ద్వారా అమలు చేయబడుతుంది (
సిస్టమ్లో ఫిల్టర్ కూడా ఉంది.
అమలు నమూనా
వినియోగాదారునిచే నిర్వచించబడినది
సంగ్రహం
భద్రత
వైఫల్యం మోడ్
వనరులకు ప్రాప్యత
యూజర్
పని
అవును
ఏదైనా
వినియోగదారు హక్కులు
అమలు అంతరాయం
సిస్టమ్ కాల్, తప్పు
కోర్
పని
ఏ
స్థిరమైన
ఏ
కెర్నల్ భయాందోళన
నేరుగా
బిపిఎఫ్
событие
అవును
JIT, CO-RE
ధృవీకరణ, JIT
దోష సందేశం
పరిమిత సహాయకులు
BPF మరియు సాధారణ వినియోగదారు లేదా కెర్నల్ స్థాయి కోడ్ మధ్య వ్యత్యాసం,
AWS బాటిల్రాకెట్ "అడ్మినిస్ట్రేటర్ అధికారాలతో ఉత్పత్తి సర్వర్లకు కనెక్షన్లను నిరోధించడం ద్వారా భద్రతను మరింత మెరుగుపరిచే ఒక ఆపరేటింగ్ మోడల్ను అమలు చేస్తుంది" మరియు "ప్రతి హోస్ట్పై పరిమిత నియంత్రణ ఉన్న పెద్ద పంపిణీ వ్యవస్థలకు తగినది" అని పేర్కొంది.
సిస్టమ్ అడ్మినిస్ట్రేటర్ల కోసం, అడ్మినిస్ట్రేటర్ కంటైనర్ అందించబడుతుంది. కానీ అడ్మిన్ తరచుగా బాటిల్రాకెట్లో పని చేయాల్సి ఉంటుందని AWS భావించడం లేదు: "అరుదైన ఆపరేషన్ల కోసం ప్రత్యేక బాటిల్రాకెట్ ఉదాహరణకి లాగిన్ చేయడం: అధునాతన డీబగ్గింగ్ మరియు ట్రబుల్షూటింగ్" -
తుప్పు భాష
కెర్నల్ పైన ఉన్న OS టూల్కిట్ ఎక్కువగా రస్ట్లో వ్రాయబడింది. ఈ భాష సహజంగానే ఉంటుంది
ఫ్లాగ్లు డిఫాల్ట్గా వర్తింపజేయబడతాయి --enable-default-pie
и --enable-default-ssp
ఎక్జిక్యూటబుల్ ఫైల్స్ యొక్క అడ్రస్ స్పేస్ రాండమైజేషన్ని ప్రారంభించడానికి (
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)తో ఏకీకరణను అమలు చేసింది. ఆర్కెస్ట్రేషన్ సాధనాలు ప్రత్యేక నియంత్రణ కంటైనర్లో వస్తాయి
గతంలో ఇలాంటి కొన్ని కార్యక్రమాలు విఫలమైన నేపథ్యంలో బాటిల్రాకెట్ టేకాఫ్ అవుతుందా అనేది ఆసక్తికరంగా ఉంటుంది. ఉదాహరణకు, Vmware నుండి PhotonOS క్లెయిమ్ చేయబడలేదు మరియు RedHat CoreOSని కొనుగోలు చేసింది మరియు
AWS సేవలతో బాటిల్రాకెట్ యొక్క ఏకీకరణ ఈ వ్యవస్థను దాని స్వంత మార్గంలో ప్రత్యేకంగా చేస్తుంది. కొంతమంది వినియోగదారులు CoreOS లేదా Alpine వంటి ఇతర పంపిణీల కంటే Bottlerocketని ఇష్టపడటానికి ఇది ప్రధాన కారణం కావచ్చు. సిస్టమ్ మొదట EKS మరియు ECSతో పనిచేయడానికి రూపొందించబడింది, అయితే ఇది అవసరం లేదని మేము పునరావృతం చేస్తాము. మొదట, బాటిల్రాకెట్ చెయ్యవచ్చు
Bottlerocket యొక్క సోర్స్ కోడ్ Apache 2.0 లైసెన్స్ క్రింద GitHubలో ప్రచురించబడింది. ఇప్పటికే డెవలపర్లు
ప్రకటనల హక్కులపై
VDSina ఆఫర్లు
మూలం: www.habr.com