ஒரு சிறிய லினக்ஸ் விநியோகம், Bottlerocket, இயங்கும் கொள்கலன்களுக்காக வெளியிடப்பட்டது. அவரைப் பற்றிய மிக முக்கியமான விஷயம்

ஒரு சிறிய லினக்ஸ் விநியோகம், Bottlerocket, இயங்கும் கொள்கலன்களுக்காக வெளியிடப்பட்டது. அவரைப் பற்றிய மிக முக்கியமான விஷயம்

அமேசான் நிறுவனம் அறிவித்தார் இறுதி வெளியீடு பற்றி பாட்டில்ரோக்கெட் - கொள்கலன்களை இயக்குவதற்கும் அவற்றை திறம்பட நிர்வகிப்பதற்கும் ஒரு சிறப்பு விநியோகம்.

பாட்டில்ராக்கெட் (இதன் மூலம், சிறிய வீட்டில் தயாரிக்கப்பட்ட கருப்பு தூள் ராக்கெட்டுகளுக்கு கொடுக்கப்பட்ட பெயர்) கொள்கலன்களுக்கான முதல் OS அல்ல, ஆனால் AWS சேவைகளுடன் இயல்புநிலை ஒருங்கிணைப்பு காரணமாக இது பரவலாக மாறும். கணினி அமேசான் கிளவுட்டில் கவனம் செலுத்தினாலும், திறந்த மூலக் குறியீடு அதை எங்கும் உருவாக்க அனுமதிக்கிறது: உள்நாட்டில் ஒரு சேவையகத்தில், ஒரு ராஸ்பெர்ரி பையில், எந்தவொரு போட்டி மேகத்திலும் மற்றும் கொள்கலன் இல்லாத சூழலில் கூட.

இது 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 போன்றவற்றை உத்வேகத்தின் ஆதாரங்களாக மேற்கோள் காட்டி, இது முதல் "கன்டெய்னர்களுக்கான லினக்ஸ்" அல்ல என்று அவர் உடனடியாக ஒப்புக்கொண்டார். டெவலப்பர்கள் "அமேசான் அளவில் நீண்ட காலமாக உற்பத்தி சேவைகளை இயக்குவதில் இருந்து நாங்கள் கற்றுக்கொண்ட பாடங்கள் மற்றும் கொள்கலன்களை எவ்வாறு இயக்குவது என்பது பற்றி கடந்த ஆறு ஆண்டுகளாக நாங்கள் பெற்ற அனுபவத்தின் விளைவாக" இந்த இயக்க முறைமை உள்ளது என்று எழுதினர்.

தீவிர மினிமலிசம்

கொள்கலன்களை இயக்கத் தேவையில்லாத அனைத்தும் லினக்ஸ் அகற்றப்பட்டது. இந்த வடிவமைப்பு, நிறுவனத்தின் படி, தாக்குதல் மேற்பரப்பைக் குறைக்கிறது.

இதன் பொருள் அடிப்படை அமைப்பில் குறைவான தொகுப்புகள் நிறுவப்பட்டுள்ளன, இது OS ஐப் பராமரிப்பதையும் புதுப்பிப்பதையும் எளிதாக்குகிறது, மேலும் சார்புகள் காரணமாக சிக்கல்களின் வாய்ப்பைக் குறைக்கிறது, வள பயன்பாட்டைக் குறைக்கிறது. அடிப்படையில், இங்குள்ள அனைத்தும் தனித்தனி கொள்கலன்களுக்குள் வேலை செய்கின்றன, மேலும் அடிப்படை அமைப்பு நடைமுறையில் வெறுமையாக உள்ளது.

அமேசான் அனைத்து ஷெல்களையும் மொழிபெயர்ப்பாளர்களையும் அகற்றியுள்ளது, அவை பயன்படுத்தப்படும் அபாயத்தை நீக்குகிறது அல்லது பயனர்கள் தற்செயலாக சலுகைகளை அதிகரிக்கும். மினிமலிசம் மற்றும் பாதுகாப்பிற்காக, அடிப்படை படத்தில் கட்டளை ஷெல், ஒரு SSH சேவையகம் அல்லது பைதான் போன்ற மொழிகள் இல்லை. நிர்வாகி கருவிகள் ஒரு தனி சேவை கொள்கலனில் வைக்கப்படுகின்றன, இது இயல்பாகவே முடக்கப்பட்டுள்ளது.

கணினி இரண்டு வழிகளில் நிர்வகிக்கப்படுகிறது: API மற்றும் ஆர்கெஸ்ட்ரேஷன் மூலம்.

தனித்தனி மென்பொருளைப் புதுப்பிக்கும் தொகுப்பு மேலாளருக்குப் பதிலாக, Bottlerocket ஒரு முழுமையான கோப்பு முறைமை படத்தைப் பதிவிறக்கி, அதில் மறுதொடக்கம் செய்கிறது. ஒரு சுமை தோல்வியுற்றால், அது தானாகவே பின்வாங்குகிறது, மேலும் பணிச்சுமை தோல்வியானது கைமுறையாக திரும்பப்பெறுதலைத் தூண்டும் (API வழியாக கட்டளை).

கட்டமைப்பு TUF (தி அப்டேட் ஃப்ரேம்வொர்க்) பட அடிப்படையிலான புதுப்பிப்புகளை மாற்று அல்லது "மவுன்ட் செய்யப்படாத" பகிர்வுகளுக்கு பதிவிறக்குகிறது. கணினிக்கு இரண்டு வட்டு பகிர்வுகள் ஒதுக்கப்பட்டுள்ளன, அவற்றில் ஒன்று செயலில் உள்ள அமைப்பைக் கொண்டுள்ளது, மேலும் புதுப்பிப்பு இரண்டாவதாக நகலெடுக்கப்படுகிறது. இந்த வழக்கில், ரூட் பகிர்வு படிக்க-மட்டும் பயன்முறையில் ஏற்றப்பட்டது, மற்றும் பகிர்வு /etc RAM இல் கோப்பு முறைமையுடன் ஏற்றப்பட்டது tmpfs மறுதொடக்கத்திற்குப் பிறகு அசல் நிலையை மீட்டெடுக்கிறது. உள்ளமைவு கோப்புகளின் நேரடி மாற்றம் /etc ஆதரிக்கப்படவில்லை: அமைப்புகளைச் சேமிக்க, நீங்கள் API ஐப் பயன்படுத்த வேண்டும் அல்லது செயல்பாட்டை தனித்தனி கொள்கலன்களுக்கு நகர்த்த வேண்டும்.

ஒரு சிறிய லினக்ஸ் விநியோகம், Bottlerocket, இயங்கும் கொள்கலன்களுக்காக வெளியிடப்பட்டது. அவரைப் பற்றிய மிக முக்கியமான விஷயம்
API மேம்படுத்தல் திட்டம்

பாதுகாப்பு

கொள்கலன்கள் லினக்ஸ் கர்னலின் நிலையான வழிமுறைகளால் உருவாக்கப்படுகின்றன - cgroups, namespaces மற்றும் seccomp, மேலும் அவை கட்டாய அணுகல் கட்டுப்பாட்டு அமைப்பாகப் பயன்படுத்தப்படுகின்றன, அதாவது கூடுதல் தனிமைப்படுத்தலுக்கு இது SELinux "செயல்படுத்துதல்" முறையில்.

இயல்பாக, கொள்கலன்களுக்கும் கர்னலுக்கும் இடையில் வளங்களைப் பகிர கொள்கைகள் இயக்கப்படுகின்றன. பயனர்கள் அல்லது நிரல்களை இயக்குவதைத் தடுக்க பைனரிகள் கொடிகளால் பாதுகாக்கப்படுகின்றன. ஒருவர் கோப்பு முறைமைக்குச் சென்றால், ஏதேனும் மாற்றங்களைச் சரிபார்த்து கண்காணிக்க Bottlerocket ஒரு கருவியை வழங்குகிறது.

"சரிபார்க்கப்பட்ட துவக்க" பயன்முறை சாதனம்-மேப்பர்-வெரிட்டி செயல்பாடு மூலம் செயல்படுத்தப்படுகிறது (dm-verity), இது துவக்கத்தின் போது ரூட் பகிர்வின் ஒருமைப்பாட்டை சரிபார்க்கிறது. AWS, dm-verity ஐ "லினக்ஸ் கர்னலின் ஒரு அம்சம், இது கோர் சிஸ்டம் மென்பொருளை மேலெழுதுதல் போன்ற OS இல் தீம்பொருள் இயங்குவதைத் தடுக்க ஒருமைப்பாடு சோதனைகளை வழங்குகிறது" என்று விவரிக்கிறது.

கணினியில் ஒரு வடிகட்டி உள்ளது eGMP (நீட்டிக்கப்பட்ட BPF, அலெக்ஸி ஸ்டாரோவொய்டோவ் என்பவரால் உருவாக்கப்பட்டது), இது கர்னல் தொகுதிகளை குறைந்த-நிலை கணினி செயல்பாடுகளுக்கு மிகவும் பாதுகாப்பான BPF நிரல்களுடன் மாற்ற அனுமதிக்கிறது.

மரணதண்டனை மாதிரி
பயனர் வரையறுத்த
தொகுப்பு
பாதுகாப்பு
தோல்வி முறை
வளங்களுக்கான அணுகல்

பயனர்
பணி
ஆம்
ஏதேனும்
பயனர் உரிமைகள்
செயல்படுத்துவதில் குறுக்கீடு
கணினி அழைப்பு, தவறு

மைய
பணி
எந்த
நிலையான
எந்த
கர்னல் பீதி
நேராக

BPF
நிகழ்வு
ஆம்
JIT, CO-RE
சரிபார்ப்பு, JIT
பிழை செய்தி
வரையறுக்கப்பட்ட உதவியாளர்கள்

வழக்கமான பயனர் அல்லது கர்னல் நிலை குறியீட்டிலிருந்து BPF எவ்வாறு வேறுபடுகிறது மூல

AWS, Bottlerocket "நிர்வாகச் சலுகைகளுடன் உற்பத்திச் சேவையகங்களுக்கான இணைப்புகளைத் தடுப்பதன் மூலம் பாதுகாப்பை மேலும் மேம்படுத்தும் ஒரு இயக்க மாதிரியைப் பயன்படுத்துகிறது" மேலும் "ஒவ்வொரு தனி ஹோஸ்ட் மீதும் கட்டுப்பாடு குறைவாக இருக்கும் பெரிய விநியோகிக்கப்பட்ட அமைப்புகளுக்கு ஏற்றது."

கணினி நிர்வாகிகளுக்கு ஒரு நிர்வாகி கொள்கலன் வழங்கப்படுகிறது. ஆனால் AWS ஒரு நிர்வாகி அடிக்கடி Bottlerocket க்குள் வேலை செய்ய வேண்டும் என்று நினைக்கவில்லை: "ஒரு தனி Bottlerocket நிகழ்வில் உள்நுழைவது என்பது அரிதான செயல்பாடுகளை நோக்கமாகக் கொண்டது: மேம்பட்ட பிழைத்திருத்தம் மற்றும் சரிசெய்தல்," எழுத டெவலப்பர்கள்.

துரு மொழி

கர்னலின் மேல் உள்ள 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++ தவிர, சில தொகுப்புகள் Go இல் எழுதப்பட்டுள்ளன.

AWS சேவைகளுடன் ஒருங்கிணைப்பு

இதேபோன்ற கண்டெய்னர் இயக்க முறைமைகளிலிருந்து வித்தியாசம் என்னவென்றால், அமேசான் AWS இல் இயங்குவதற்கும் மற்ற AWS சேவைகளுடன் ஒருங்கிணைப்பதற்கும் Bottlerocket ஐ மேம்படுத்தியுள்ளது.

மிகவும் பிரபலமான கன்டெய்னர் ஆர்கெஸ்ட்ரேட்டர் குபெர்னெட்ஸ் ஆகும், எனவே AWS அதன் சொந்த நிறுவன குபெர்னெட்ஸ் சேவையுடன் (EKS) ஒருங்கிணைப்பை அறிமுகப்படுத்தியது. ஆர்கெஸ்ட்ரேஷன் கருவிகள் ஒரு தனி கட்டுப்பாட்டு கொள்கலனில் வருகின்றன பாட்டில் ராக்கெட்-கட்டுப்பாட்டு கொள்கலன், இது முன்னிருப்பாக இயக்கப்பட்டு API மற்றும் AWS SSM முகவர் மூலம் நிர்வகிக்கப்படுகிறது.

கடந்த காலங்களில் இதேபோன்ற சில முயற்சிகள் தோல்வியடைந்த நிலையில், பாட்டில் ராக்கெட் புறப்படுமா என்பதைப் பார்ப்பது சுவாரஸ்யமாக இருக்கும். எடுத்துக்காட்டாக, Vmware இலிருந்து PhotonOS உரிமை கோரப்படாததாக மாறியது, மேலும் RedHat CoreOS ஐ வாங்கியது மற்றும் திட்டத்தை மூடினார், துறையில் முன்னோடியாகக் கருதப்பட்டவர்.

AWS சேவைகளில் Bottlerocket இன் ஒருங்கிணைப்பு இந்த அமைப்பை அதன் சொந்த வழியில் தனித்துவமாக்குகிறது. சில பயனர்கள் CoreOS அல்லது Alpine போன்ற பிற டிஸ்ட்ரோக்களை விட Bottlerocket ஐ விரும்புவதற்கு இதுவே முக்கிய காரணமாக இருக்கலாம். கணினி ஆரம்பத்தில் EKS மற்றும் ECS உடன் வேலை செய்ய வடிவமைக்கப்பட்டுள்ளது, ஆனால் இது தேவையில்லை என்று மீண்டும் சொல்கிறோம். முதலில், பாட்டில் ராக்கெட் முடியும் நீங்களே கூடுங்கள் எடுத்துக்காட்டாக, ஹோஸ்ட் செய்யப்பட்ட தீர்வாக அதைப் பயன்படுத்தவும். இரண்டாவதாக, EKS மற்றும் ECS பயனர்கள் இன்னும் தங்கள் OS ஐத் தேர்ந்தெடுக்கும் திறனைக் கொண்டுள்ளனர்.

Apache 2.0 உரிமத்தின் கீழ் GitHub இல் Bottlerocket மூலக் குறியீடு வெளியிடப்பட்டது. டெவலப்பர்கள் ஏற்கனவே உள்ளனர் பிழை அறிக்கைகள் மற்றும் அம்ச கோரிக்கைகளுக்கு பதிலளிக்கவும்.

விளம்பரம் உரிமைகள் மீது

VDSina சலுகைகள் தினசரி கட்டணத்துடன் வி.டி.எஸ். உங்கள் சொந்த படம் உட்பட எந்த இயக்க முறைமையையும் நிறுவ முடியும். ஒவ்வொரு சேவையகமும் 500 மெகாபிட் இணைய சேனலுடன் இணைக்கப்பட்டுள்ளது மற்றும் இலவசமாக DDoS தாக்குதல்களிலிருந்து பாதுகாக்கப்படுகிறது!

ஒரு சிறிய லினக்ஸ் விநியோகம், Bottlerocket, இயங்கும் கொள்கலன்களுக்காக வெளியிடப்பட்டது. அவரைப் பற்றிய மிக முக்கியமான விஷயம்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்