Bottlerocket 1.1-ի թողարկում, բաշխում, որը հիմնված է մեկուսացված տարաների վրա

Հասանելի է Linux բաշխման Bottlerocket 1.1.0 թողարկումը, որը մշակվել է Amazon-ի մասնակցությամբ՝ մեկուսացված բեռնարկղերի արդյունավետ և անվտանգ գործարկման համար: Բաշխման գործիքները և կառավարման բաղադրիչները գրված են Rust-ով և տարածվում են MIT և Apache 2.0 լիցենզիաների ներքո: Այն աջակցում է Bottlerocket-ի գործարկումը Amazon ECS և AWS EKS Kubernetes կլաստերներում, ինչպես նաև ստեղծում է հատուկ կառուցումներ և հրատարակություններ, որոնք թույլ են տալիս օգտագործել տարբեր նվագախմբային և գործարկման գործիքներ կոնտեյներների համար:

Բաշխումն ապահովում է ատոմային և ավտոմատ կերպով թարմացվող անբաժանելի համակարգի պատկեր, որը ներառում է Linux միջուկը և նվազագույն համակարգի միջավայրը, ներառյալ միայն այն բաղադրիչները, որոնք անհրաժեշտ են կոնտեյներներ գործարկելու համար: Շրջակա միջավայրը ներառում է systemd համակարգի կառավարիչը, Glibc գրադարանը, Buildroot build գործիքը, GRUB boot loader-ը, չար ցանցի կոնֆիգուրատորը, մեկուսացված բեռնարկղերի կոնտեյներների գործարկման ժամանակը, Kubernetes կոնտեյներների նվագախմբային հարթակը, aws-iam-authenticator-ը և Amazon-ը: ECS գործակալ.

Կոնտեյներների նվագախմբի գործիքները գալիս են առանձին կառավարման կոնտեյներով, որը միացված է լռելյայնորեն և կառավարվում է API-ի և AWS SSM գործակալի միջոցով: Հիմնական պատկերում բացակայում է հրամանի վահանակը, SSH սերվերը և մեկնաբանվող լեզուներ (օրինակ՝ ոչ Python կամ Perl) - վարչական գործիքները և վրիպազերծման գործիքները տեղադրվում են առանձին սպասարկման կոնտեյներով, որը լռելյայն անջատված է:

Հիմնական տարբերությունը նմանատիպ բաշխումներից, ինչպիսիք են Fedora CoreOS-ը, CentOS/Red Hat Atomic Host-ը, հիմնական ուշադրությունն է առավելագույն անվտանգության ապահովման վրա՝ հնարավոր սպառնալիքներից համակարգի պաշտպանության ամրապնդման համատեքստում, ինչը դժվարացնում է ՕՀ բաղադրիչների խոցելիության օգտագործումը և կոնտեյների մեկուսացման ավելացումը: . Կոնտեյներները ստեղծվում են Linux միջուկի ստանդարտ մեխանիզմների միջոցով՝ cgroups, namespaces և seccomp: Լրացուցիչ մեկուսացման համար բաշխումն օգտագործում է SELinux «պարտադրման» ռեժիմում:

Արմատային միջնորմը տեղադրվում է միայն կարդալու համար, իսկ /etc կարգավորումների բաժինը տեղադրվում է tmpfs-ով և վերագործարկումից հետո վերականգնվում է իր սկզբնական վիճակին: /etc գրացուցակի ֆայլերի ուղղակի փոփոխությունները, ինչպիսիք են /etc/resolv.conf և /etc/containerd/config.toml, չեն աջակցվում. կարգավորումները մշտապես պահպանելու համար դուք պետք է օգտագործեք API-ն կամ տեղափոխեք գործառույթը առանձին բեռնարկղերում: dm-verity մոդուլն օգտագործվում է արմատային բաժանման ամբողջականությունը գաղտնագրորեն ստուգելու համար, և եթե հայտնաբերվում է տվյալների բլոկ սարքի մակարդակում փոփոխելու փորձ, համակարգը վերագործարկում է:

Համակարգի բաղադրիչներից շատերը գրված են Rust-ով, որն ապահովում է հիշողության համար անվտանգ գործառույթներ՝ խուսափելու համար խոցելիություններից, որոնք առաջանում են հիշողության ազատ մուտքի, զրո ցուցիչի վերափոխումների և բուֆերների գերակատարումների հետևանքով: Լռելյայն կառուցելիս կոմպիլյացիոն ռեժիմները «-enable-default-pie» և «-enable-default-ssp» օգտագործվում են գործարկվող ֆայլի հասցեների տարածության (PIE) պատահականությունը հնարավոր դարձնելու և դեղձանիկ փոխարինման միջոցով կույտերի արտահոսքից պաշտպանվելու համար: C/C++-ով գրված փաթեթների համար «-Wall», «-Werror=format-security», «-Wp,-D_FORTIFY_SOURCE=2», «-Wp,-D_GLIBCXX_ASSERTIONS» և «-fstack-clash» դրոշները լրացուցիչ են: միացված է - պաշտպանություն»:

Նոր թողարկումում.

  • Առաջարկվել են բաշխման երկու նոր տարբերակներ՝ aws-k8s-1.20 և vmware-k8s-1.20՝ Kubernetes 1.20-ի աջակցությամբ: Այս տարբերակները, ինչպես նաև aws-ecs-1 թարմացված տարբերակը, օգտագործում են Linux միջուկի նոր 5.10 թողարկումը։ Արգելափակման ռեժիմը լռելյայնորեն սահմանված է «ամբողջականության» վրա (հնարավորությունները, որոնք թույլ են տալիս փոփոխություններ կատարել գործող միջուկում օգտագործողի տարածությունից, արգելափակված են): Kubernetes 8-ի վրա հիմնված aws-k1.15s-1.15 տարբերակի աջակցությունը դադարեցվել է:
  • Amazon ECS-ն աջակցում է awsvpc ցանցային ռեժիմին, որը թույլ է տալիս յուրաքանչյուր առաջադրանքի համար հատկացնել առանձին ցանցային միջերեսներ և ներքին IP հասցեներ:
  • Ավելացվել են կարգավորումներ՝ վերահսկելու Kubernetes-ի տարբեր պարամետրերը, ներառյալ QPS-ը, լողավազանի սահմանաչափերը և AWS-ից տարբեր ամպային մատակարարներին միանալու հնարավորությունը:
  • Bootstrap կոնտեյները ապահովում է SELinux-ի միջոցով օգտվողի տվյալների հասանելիության սահմանափակում:
  • Ավելացվեց resize2fs կոմունալ ծրագիրը:

Source: opennet.ru

Добавить комментарий