Amazon
Bottlerocket (Aytgancha, kichik uy qurilishi qora kukunli raketalarga berilgan nom) konteynerlar uchun birinchi operatsion tizim emas, lekin u AWS xizmatlari bilan standart integratsiya tufayli keng tarqalgan bo'lishi mumkin. Tizim Amazon bulutiga yo'naltirilgan bo'lsa-da, ochiq kodli kod uni istalgan joyda qurishga imkon beradi: mahalliy serverda, Raspberry Pi-da, har qanday raqobatdosh bulutda va hatto konteynersiz muhitda.
Bu Red Hat ko'mgan CoreOS tarqatish uchun to'liq munosib o'rinbosar.
Darhaqiqat, Amazon Web Services bo'limida allaqachon Amazon Linux mavjud bo'lib, u yaqinda ikkinchi versiyasida chiqdi: bu Docker konteynerida yoki Linux KVM, Microsoft Hyper-V va VMware bilan ishlashi mumkin bo'lgan umumiy maqsadli tarqatish. ESXi gipervisorlari. U AWS bulutida ishlash uchun optimallashtirilgan, ammo Bottlerocket-ning chiqarilishi bilan hamma xavfsizroq, zamonaviyroq va kamroq resurslardan foydalanadigan yangi tizimga o'tishga undaydi.
AWS Bottlerocketni e'lon qildi
Haddan tashqari minimalizm
Linux konteynerlarni ishlatish uchun kerak bo'lmagan hamma narsadan mahrum. Ushbu dizayn, kompaniyaga ko'ra, hujum yuzasini kamaytiradi.
Bu shuni anglatadiki, bazaviy tizimda kamroq paketlar o'rnatilgan, bu OTni saqlash va yangilashni osonlashtiradi, shuningdek, bog'liqliklar tufayli muammolar ehtimolini kamaytiradi, resurslardan foydalanishni kamaytiradi. Asosan, bu erda hamma narsa alohida idishlar ichida ishlaydi va asosiy tizim deyarli yalang'och.
Amazon shuningdek, barcha qobiq va tarjimonlarni olib tashladi, ulardan foydalanish yoki foydalanuvchilarning tasodifan imtiyozlarni oshirish xavfini yo'q qildi. Minimalizm va xavfsizlik uchun asosiy tasvir buyruqlar qobig'ini, SSH serverini yoki Python kabi talqin qilingan tillarni o'z ichiga olmaydi. Administrator vositalari sukut bo'yicha o'chirilgan alohida xizmat ko'rsatish konteyneriga joylashtirilgan.
Tizim ikki usulda boshqariladi: API va orkestratsiya orqali.
Dasturiy ta'minotning alohida qismlarini yangilaydigan paket menejeri o'rniga Bottlerocket fayl tizimining to'liq tasvirini yuklab oladi va uni qayta ishga tushiradi. Agar yuk muvaffaqiyatsiz bo'lsa, u avtomatik ravishda orqaga qaytariladi va ish yukining noto'g'riligi qo'lda orqaga qaytarishni boshlashi mumkin (API orqali buyruq).
Ramka /etc
RAMdagi fayl tizimi bilan o'rnatilgan /etc
qo'llab-quvvatlanmaydi: sozlamalarni saqlash uchun siz API-dan foydalanishingiz yoki funksionallikni alohida konteynerlarga ko'chirishingiz kerak.
API yangilash sxemasi
Xavfsizlik
Konteynerlar Linux yadrosining standart mexanizmlari - guruhlar, nomlar va seccomp tomonidan yaratilgan va majburiy kirishni boshqarish tizimi sifatida, ya'ni qo'shimcha izolyatsiya uchun ishlatiladi.
Odatiy bo'lib, siyosatlar konteynerlar va yadro o'rtasida resurslarni almashish uchun yoqilgan. Ikkilik fayllar foydalanuvchilarning yoki dasturlarning ularni bajarishiga yo'l qo'ymaslik uchun bayroqlar bilan himoyalangan. Va agar kimdir fayl tizimiga kirsa, Bottlerocket kiritilgan o'zgarishlarni tekshirish va kuzatish uchun vositani taklif qiladi.
"Tasdiqlangan yuklash" rejimi qurilma-mapper-verity funktsiyasi orqali amalga oshiriladi (
Tizimda filtr ham mavjud
Amalga oshirish modeli
Foydalanuvchi aniqlangan
Jamlama
Xavfsizlik
Muvaffaqiyatsizlik rejimi
Resurslarga kirish
Foydalanuvchi
muammo
ha
har qanday
foydalanuvchi huquqlari
bajarilishini to'xtatish
tizim chaqiruvi, xato
asosiy
muammo
yo'q
statik
yo'q
yadro vahima
to'g'ri
GMP
sobitie
ha
JIT, CO-RE
tekshirish, JIT
xato xabari
cheklangan yordamchilar
BPF oddiy foydalanuvchi yoki yadro darajasidagi koddan qanday farq qiladi
AWSning ta'kidlashicha, Bottlerocket "ma'muriy imtiyozlarga ega bo'lgan ishlab chiqarish serverlariga ulanishni oldini olish orqali xavfsizlikni yanada kuchaytiradigan operatsion modeldan foydalanadi" va "har bir alohida xost ustidan nazorat cheklangan katta taqsimlangan tizimlar uchun javob beradi".
Tizim ma'murlari uchun administrator konteyneri taqdim etiladi. Ammo AWS administrator ko‘pincha Bottlerocket ichida ishlashi kerak deb o‘ylamaydi: “Bottlerocket-ning alohida nusxasiga kirish harakati kamdan-kam hollarda bajariladigan operatsiyalar uchun mo‘ljallangan: ilg‘or disk raskadrovka va muammolarni bartaraf etish,”
Zang tili
Yadro ustidagi OS asboblari asosan Rustda yozilgan. Bu til o'z tabiatiga ko'ra
Qurilishda bayroqlar sukut bo'yicha qo'llaniladi --enable-default-pie
и --enable-default-ssp
bajariladigan fayllarning manzil maydonini tasodifiylashtirishni yoqish (
C/C++ paketlari uchun qo'shimcha bayroqlar kiritilgan -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
и -fstack-clash-protection
.
Rust va C/C++ dan tashqari ba'zi paketlar Go'da yozilgan.
AWS xizmatlari bilan integratsiya
Shu kabi konteyner operatsion tizimlaridan farqi shundaki, Amazon AWS da ishlash va boshqa AWS xizmatlari bilan integratsiya qilish uchun Bottlerocket-ni optimallashtirgan.
Eng mashhur konteyner orkestri Kubernetes, shuning uchun AWS o'zining Enterprise Kubernetes Service (EKS) bilan integratsiyani joriy qildi. Orkestrlash vositalari alohida nazorat konteynerida keladi
O'tmishda shunga o'xshash tashabbuslar muvaffaqiyatsizlikka uchraganini hisobga olsak, Bottlerocket uchib ketadimi yoki yo'qligini bilish qiziq. Masalan, Vmware-dan PhotonOS talab qilinmagan bo'lib chiqdi va RedHat CoreOS-ni sotib oldi va
Bottlerocket-ning AWS xizmatlariga integratsiyalashuvi ushbu tizimni o'ziga xos tarzda noyob qiladi. Bu, ehtimol, ba'zi foydalanuvchilar Bottlerocket-ni CoreOS yoki Alpine kabi boshqa distroslardan afzal ko'rishlarining asosiy sababidir. Tizim dastlab EKS va ECS bilan ishlash uchun mo'ljallangan, ammo biz bu kerak emasligini takrorlaymiz. Birinchidan, Bottlerocket mumkin
Bottlerocket manba kodi GitHub-da Apache 2.0 litsenziyasi ostida nashr etilgan. Ishlab chiquvchilar allaqachon
Reklama huquqlari to'g'risida
VDSina takliflar
Manba: www.habr.com