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

Հասանելի է Linux բաշխման Bottlerocket 1.2.0 թողարկումը, որը մշակվել է Amazon-ի մասնակցությամբ՝ մեկուսացված բեռնարկղերի արդյունավետ և անվտանգ գործարկման համար: Բաշխման գործիքները և կառավարման բաղադրիչները գրված են Rust-ով և տարածվում են MIT և Apache 2.0 լիցենզիաների ներքո: Այն աջակցում է Bottlerocket-ի գործարկումը Amazon ECS, VMware և 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» դրոշները լրացուցիչ են: միացված է - պաշտպանություն»:

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

  • Ավելացվեց կոնտեյների պատկերի ռեեստրի հայելիների աջակցություն:
  • Ավելացվեց ինքնաստորագրված վկայագրերի օգտագործման հնարավորությունը:
  • Ավելացվեց հոսթի անունը կարգավորելու տարբերակ:
  • Վարչական կոնտեյների լռելյայն տարբերակը թարմացվել է:
  • Kubelet-ի համար ավելացվել է topologyManagerPolicy և topologyManagerScope կարգավորումներ:
  • Ավելացվել է միջուկի սեղմման աջակցություն zstd ալգորիթմի միջոցով:
  • Ապահովված է վիրտուալ մեքենաները VMware-ում OVA (Open Virtualization Format) ձևաչափով բեռնելու հնարավորություն:
  • Բաշխման aws-k8s-1.21 տարբերակը թարմացվել է Kubernetes 1.21-ի աջակցությամբ: Aws-k8s-1.16-ի աջակցությունը դադարեցվել է:
  • Փաթեթի թարմացված տարբերակները և կախվածությունները Rust լեզվի համար:

Source: opennet.ru

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