Kata Containers 3.0-ի թողարկում՝ վիրտուալիզացիայի վրա հիմնված մեկուսացմամբ

Երկու տարվա մշակումից հետո հրապարակվել է Kata Containers 3.0 նախագծի թողարկումը, որը մշակում է բեռնարկղերի կատարումը կազմակերպելու համար նախատեսված մեկուսացում, որը հիմնված է լիարժեք վիրտուալացման մեխանիզմների վրա: Նախագիծը ստեղծվել է Intel-ի և Hyper-ի կողմից՝ համատեղելով Clear Containers և runV տեխնոլոգիաները։ Ծրագրի կոդը գրված է Go and Rust-ով և տարածվում է Apache 2.0 լիցենզիայի ներքո: Նախագծի մշակումը վերահսկվում է OpenStack Foundation անկախ կազմակերպության հովանու ներքո ստեղծված աշխատանքային խմբի կողմից, որը ներառում է այնպիսի ընկերություններ, ինչպիսիք են Canonical, China Mobile, Dell / EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE և ZTE: .

Kata-ի հիմքում ընկած է «runtime»-ը, որը հնարավորություն է տալիս ստեղծել կոմպակտ վիրտուալ մեքենաներ, որոնք աշխատում են լիարժեք հիպերվիզորի միջոցով, փոխարենը օգտագործելու ավանդական կոնտեյներներ, որոնք օգտագործում են ընդհանուր Linux միջուկը և մեկուսացնում են՝ օգտագործելով անունների տարածքներ և cgroups: Վիրտուալ մեքենաների օգտագործումը թույլ է տալիս հասնել անվտանգության ավելի բարձր մակարդակի, որը պաշտպանում է Linux-ի միջուկի խոցելիության շահագործման հետևանքով առաջացած հարձակումներից:

Kata Containers-ը կենտրոնացած է գոյություն ունեցող բեռնարկղերի մեկուսացման ենթակառուցվածքներում ինտեգրվելու վրա՝ ավանդական բեռնարկղերի պաշտպանությունը բարձրացնելու համար նման վիրտուալ մեքենաներ օգտագործելու հնարավորությամբ: Նախագիծը մեխանիզմներ է տրամադրում թեթև վիրտուալ մեքենաները համատեղելի տարբեր կոնտեյներների մեկուսացման շրջանակների, կոնտեյներների կազմակերպման հարթակների և այնպիսի բնութագրերի հետ, ինչպիսիք են OCI (Open Container Initiative), CRI (Container Runtime Interface) և CNI (Container Networking Interface): Հասանելի են ինտեգրումներ Docker-ի, Kubernetes-ի, QEMU-ի և OpenStack-ի հետ:

Kata Containers 3.0-ի թողարկում՝ վիրտուալիզացիայի վրա հիմնված մեկուսացմամբ

Ինտեգրումը կոնտեյների կառավարման համակարգերի հետ ձեռք է բերվում օգտագործելով շերտ, որը մոդելավորում է կոնտեյների կառավարումը, որը gRPC ինտերֆեյսի և հատուկ պրոքսիի միջոցով մուտք է գործում վիրտուալ մեքենայի կառավարման գործակալ: Վիրտուալ միջավայրի ներսում, որը գործարկվում է հիպերվիզորի կողմից, օգտագործվում է հատուկ օպտիմիզացված Linux միջուկ, որը պարունակում է միայն անհրաժեշտ հատկանիշների նվազագույն փաթեթը:

Որպես հիպերվիզոր՝ աջակցվում է Dragonball Sandbox-ի (KVM տարբերակ՝ օպտիմիզացված կոնտեյներների համար) օգտագործումը QEMU գործիքակազմով, ինչպես նաև Firecracker և Cloud Hypervisor-ը: Համակարգի միջավայրը ներառում է սկզբնավորման դեյմոնը և գործակալը: Գործակալը գործարկում է օգտագործողի կողմից սահմանված բեռնարկղային պատկերները OCI ձևաչափով Docker-ի համար և CRI՝ Kubernetes-ի համար: Docker-ի հետ համատեղ օգտագործման դեպքում յուրաքանչյուր կոնտեյների համար ստեղծվում է առանձին վիրտուալ մեքենա, այսինքն. հիպերվիզորի կողմից գործարկված միջավայրն օգտագործվում է բեռնարկղերի բնադրման համար:

Kata Containers 3.0-ի թողարկում՝ վիրտուալիզացիայի վրա հիմնված մեկուսացմամբ

Հիշողության սպառումը նվազեցնելու համար օգտագործվում է DAX մեխանիզմը (ուղիղ մուտք դեպի FS՝ շրջանցելով էջի քեշը՝ առանց սարքի արգելափակման մակարդակի օգտագործման), իսկ KSM (Kernel Samepage Merging) տեխնոլոգիան օգտագործվում է հիշողության նույնական տարածքները հեռացնելու համար, ինչը թույլ է տալիս կիսել հյուրընկալող համակարգի ռեսուրսները։ և միացնելով տարբեր հյուր համակարգերի ընդհանուր համակարգի միջավայրի ձևանմուշ:

Նոր տարբերակում.

  • Առաջարկվում է այլընտրանքային գործարկման ժամանակ (runtime-rs), որը ձևավորում է Rust լեզվով գրված տարաների լցոնում (նախկինում տրամադրված գործարկման ժամանակը գրված է Go լեզվով): Runtime-ը համատեղելի է OCI-ի, CRI-O-ի և Containerd-ի հետ՝ այն համատեղելի դարձնելով Docker-ի և Kubernetes-ի հետ:
  • Առաջարկվել է նոր վիշապ գնդակի հիպերվիզոր՝ հիմնված KVM-ի և rust-vmm-ի վրա:
  • Ավելացվել է VFIO-ի միջոցով GPU մուտքի փոխանցման աջակցություն:
  • Ավելացված է աջակցություն cgroup v2-ի համար:
  • Իրականացված աջակցություն՝ առանց հիմնական կազմաձևման ֆայլը փոխելու կարգավորումները փոխելու համար՝ բլոկները փոխարինելով առանձին ֆայլերում, որոնք գտնվում են «config.d/» գրացուցակում:
  • Rust բաղադրիչներն օգտագործում են նոր գրադարան՝ ֆայլերի ուղիների հետ անվտանգ աշխատելու համար:
  • virtiofsd բաղադրիչը (գրված է C-ով) փոխարինվել է virtiofsd-rs-ով (գրված է Rust-ով):
  • Ավելացվել է QEMU բաղադրիչների ավազատուփի մեկուսացման աջակցություն:
  • QEMU-ն օգտագործում է io_uring API-ն ասինխրոն I/O-ի համար:
  • Intel TDX (Trusted Domain Extensions) ընդլայնումների աջակցությունն իրականացվել է QEMU-ի և Cloud-hypervisor-ի համար:
  • Թարմացված բաղադրիչներ՝ QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux միջուկ 5.19.2:

Source: opennet.ru

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