Bottlerocket 1.7၊ သီးခြားကွန်တိန်နာများကို အခြေခံ၍ ဖြန့်ဖြူးမှု

Linux ဖြန့်ချီရေး Bottlerocket 1.7.0 ကို ခွဲထုတ်ထားသော ကွန်တိန်နာများကို ထိရောက်ပြီး လုံခြုံစွာ လွှင့်တင်ရန်အတွက် Amazon ၏ ပူးပေါင်းပါဝင်မှုဖြင့် ထုတ်ဝေလိုက်ပါသည်။ ဖြန့်ဖြူးမှု၏ ကိရိယာများနှင့် ထိန်းချုပ်မှု အစိတ်အပိုင်းများကို Rust ဖြင့် ရေးသားထားပြီး MIT နှင့် Apache 2.0 လိုင်စင်များအောက်တွင် ဖြန့်ဝေထားသည်။ ၎င်းသည် Amazon ECS၊ VMware နှင့် AWS EKS Kubernetes အစုအဝေးများပေါ်တွင် Bottlerocket ကို အသုံးပြုပြီး ကွန်တိန်နာများအတွက် အမျိုးမျိုးသော တီးမှုတ်ခြင်းနှင့် runtime တူးလ်များကို အသုံးပြုခွင့်ပေးသည့် စိတ်ကြိုက်တည်ဆောက်မှုများနှင့် တည်းဖြတ်မှုများကို ဖန်တီးပေးသည်။

ဖြန့်ဖြူးမှုသည် ကွန်တိန်နာများလည်ပတ်ရန် လိုအပ်သော အစိတ်အပိုင်းများ အပါအဝင် Linux kernel နှင့် အနည်းငယ်မျှသော စနစ်ပတ်ဝန်းကျင် ပါဝင်သော အက်တမ်နှင့် အလိုအလျောက် မွမ်းမံထားသော ခွဲခြားနိုင်သော စနစ်ပုံတစ်ပုံကို ပံ့ပိုးပေးပါသည်။ ပတ်ဝန်းကျင်တွင် systemd စနစ်မန်နေဂျာ၊ Glibc စာကြည့်တိုက်၊ Buildroot တည်ဆောက်ရေးကိရိယာ၊ GRUB boot loader၊ ဆိုးသွမ်းသော network configurator၊ သီးခြားကွန်တိန်နာများအတွက် containerd runtime၊ Kubernetes container orchestration platform၊ aws-iam-authenticator နှင့် Amazon ECS အေးဂျင့်။

Container orchestration tools များသည် API နှင့် AWS SSM Agent မှတဆင့် default အနေဖြင့် ဖွင့်ထားသည့် သီးခြားစီမံခန့်ခွဲမှု ကွန်တိန်နာတွင် လာပါသည်။ အခြေခံပုံတွင် command shell၊ SSH ဆာဗာနှင့် ဘာသာပြန်ထားသော ဘာသာစကားများ မရှိပါ (ဥပမာ၊ Python သို့မဟုတ် Perl မပါ) - စီမံခန့်ခွဲရေးကိရိယာများနှင့် အမှားရှာပြင်သည့်ကိရိယာများကို မူရင်းအတိုင်း ပိတ်ထားသည့် သီးခြားဝန်ဆောင်မှုကွန်တိန်နာတွင် ထားရှိထားသည်။

Fedora CoreOS၊ CentOS/Red Hat Atomic Host ကဲ့သို့သော အလားတူ ဖြန့်ဖြူးမှုများမှ အဓိက ကွာခြားချက်မှာ ဖြစ်နိုင်ချေရှိသော ခြိမ်းခြောက်မှုများမှ စနစ်ကာကွယ်မှုကို အားကောင်းစေသည့် အခြေအနေတွင် အမြင့်ဆုံးလုံခြုံရေးကို ပေးဆောင်ရန် အဓိက အာရုံစိုက်ထားပြီး OS အစိတ်အပိုင်းများတွင် အားနည်းချက်များကို အသုံးချရန်နှင့် ကွန်တိန်နာ သီးခြားခွဲထားမှုကို တိုးမြှင့်ရန် ပိုမိုခက်ခဲစေသည်။ . ကွန်တိန်နာများကို ပုံမှန် Linux kernel ယန္တရားများ - cgroups၊ namespaces နှင့် seccomp တို့ကို အသုံးပြု၍ ဖန်တီးထားသည်။ နောက်ထပ် သီးခြားခွဲထွက်ခြင်းအတွက်၊ ဖြန့်ဖြူးမှုသည် "လိုက်နာမှု" မုဒ်တွင် SELinux ကို အသုံးပြုသည်။

root partition ကို read-only တွင်တပ်ဆင်ထားပြီး /etc settings partition ကို tmpfs တွင်တပ်ဆင်ထားပြီး ပြန်လည်စတင်ပြီးနောက် ၎င်း၏မူလအခြေအနေသို့ ပြန်လည်ရောက်ရှိသွားပါသည်။ /etc/resolv.conf နှင့် /etc/containerd/config.toml ကဲ့သို့သော /etc directory ရှိ ဖိုင်များ၏ တိုက်ရိုက်မွမ်းမံမှုကို ပံ့ပိုးမထားပါ။ - ဆက်တင်များကို အပြီးတိုင်သိမ်းဆည်းရန်၊ သင်သည် API ကို အသုံးပြုရမည် သို့မဟုတ် လုပ်ဆောင်နိုင်စွမ်းကို သီးခြား ကွန်တိန်နာများသို့ ရွှေ့ရပါမည်။ dm-verity module ကို root partition ၏ မှန်ကန်မှုကို ကုဒ်ဝှက်ထားရန် အသုံးပြုပြီး ပိတ်ဆို့သည့် စက်ပစ္စည်းအဆင့်တွင် အချက်အလက်မွမ်းမံရန် ကြိုးပမ်းမှုအား တွေ့ရှိပါက၊ စနစ်သည် ပြန်လည်စတင်မည်ဖြစ်သည်။

စနစ်အစိတ်အပိုင်းအများစုကို Rust တွင်ရေးထားပါသည်၊ ၎င်းသည် အခမဲ့မှတ်ဉာဏ်ဝင်ရောက်မှုများ၊ null pointer dereferences နှင့် buffer overruns များကြောင့်ဖြစ်ရသည့် အားနည်းချက်များကိုရှောင်ရှားရန် memory-safe အင်္ဂါရပ်များကိုပေးဆောင်သည်။ ပုံသေဖြင့်တည်ဆောက်သည့်အခါ၊ စုစည်းမှုမုဒ် "-enable-default-pie" နှင့် "-enable-default-ssp" ကို executable file address space (PIE) ၏ ကျပန်းပြုလုပ်ခြင်းကိုဖွင့်ရန်နှင့် canary အစားထိုးခြင်းဖြင့် stack overflows ကိုကာကွယ်ရန်အတွက်အသုံးပြုပါသည်။ C/C++ ဖြင့် ရေးသားထားသော ပက်ကေ့ဂျ်များအတွက်၊ “-Wall”၊ “-Werror=format-security”၊ “-Wp၊-D_FORTIFY_SOURCE=2”၊ “-Wp၊-D_GLIBCXX_ASSERTIONS” နှင့် “-fstack-clash” အလံများအပြင်၊ enabled -protection"။

ထုတ်ဝေမှုအသစ်တွင်-

  • RPM ပက်ကေ့ဂျ်များကို ထည့်သွင်းသောအခါတွင်၊ ရရှိနိုင်သော ပက်ကေ့ဂျ်များအကြောင်း အချက်အလက်များကို ရယူရန် /var/lib/bottlerocket/inventory/application.json ဖိုင်အဖြစ် ၎င်းကို လက်ခံဆောင်ရွက်ပေးသည့် ကွန်တိန်နာတွင် ပရိုဂရမ်များစာရင်းကို ထုတ်ပေးနိုင်သည်။
  • "စီမံခန့်ခွဲသူ" နှင့် "ထိန်းချုပ်မှု" ကွန်တိန်နာများကို အပ်ဒိတ်လုပ်ထားသည်။
  • Go နှင့် Rust ဘာသာစကားများအတွက် ပက်ကေ့ဂျ်ဗားရှင်းများနှင့် မှီခိုမှုများကို အပ်ဒိတ်လုပ်ထားသည်။
  • ပြင်ပပရိုဂရမ်များဖြင့် ပက်ကေ့ဂျ်ဗားရှင်းများကို အပ်ဒိတ်လုပ်ထားသည်။
  • kmod-5.10-nvidia အတွက် tmpfilesd ဖွဲ့စည်းမှုဆိုင်ရာ ပြဿနာများကို ဖြေရှင်းခဲ့သည်။
  • tuftool ကို ထည့်သွင်းသောအခါ၊ မှီခိုမှုဗားရှင်းများကို ချိတ်ဆက်ထားသည်။

source: opennet.ru

မှတ်ချက် Add