Paglabas ng Kata Containers 3.0 na may virtualization-based isolation

Pagkatapos ng dalawang taon ng pag-unlad, ang paglabas ng proyekto ng Kata Containers 3.0 ay nai-publish, na bumubuo ng isang stack para sa pag-aayos ng pagpapatupad ng mga lalagyan gamit ang paghihiwalay batay sa ganap na mga mekanismo ng virtualization. Ang proyekto ay nilikha ng Intel at Hyper sa pamamagitan ng pagsasama-sama ng Clear Containers at runV na mga teknolohiya. Ang code ng proyekto ay nakasulat sa Go at Rust at ipinamahagi sa ilalim ng lisensya ng Apache 2.0. Ang pagbuo ng proyekto ay pinangangasiwaan ng isang working group na nilikha sa ilalim ng tangkilik ng independiyenteng organisasyon na OpenStack Foundation, na kinabibilangan ng mga kumpanya tulad ng Canonical, China Mobile, Dell / EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE at ZTE .

Nasa puso ng Kata ang runtime, na nagbibigay ng kakayahang lumikha ng mga compact virtual machine na tumatakbo gamit ang isang ganap na hypervisor, sa halip na gumamit ng mga tradisyunal na container na gumagamit ng karaniwang Linux kernel at ihiwalay gamit ang mga namespace at cgroup. Ang paggamit ng mga virtual machine ay nagbibigay-daan sa iyo na makamit ang mas mataas na antas ng seguridad na nagpoprotekta laban sa mga pag-atake na dulot ng pagsasamantala ng mga kahinaan sa Linux kernel.

Nakatuon ang Kata Containers sa pagsasama sa umiiral nang mga imprastraktura ng paghihiwalay ng container na may kakayahang gumamit ng mga naturang virtual machine para mapahusay ang proteksyon ng mga tradisyonal na container. Ang proyekto ay nagbibigay ng mga mekanismo upang gawing tugma ang magaan na virtual machine sa iba't ibang container isolation framework, container orchestration platform, at mga detalye tulad ng OCI (Open Container Initiative), CRI (Container Runtime Interface), at CNI (Container Networking Interface). Available ang mga pagsasama sa Docker, Kubernetes, QEMU, at OpenStack.

Paglabas ng Kata Containers 3.0 na may virtualization-based isolation

Ang pagsasama sa mga sistema ng pamamahala ng container ay nakakamit gamit ang isang layer na ginagaya ang pamamahala ng container, na, sa pamamagitan ng interface ng gRPC at isang espesyal na proxy, ina-access ang control agent sa virtual machine. Sa loob ng virtual na kapaligiran, na inilunsad ng hypervisor, ginagamit ang isang espesyal na na-optimize na kernel ng Linux, na naglalaman lamang ng pinakamababang hanay ng mga kinakailangang tampok.

Bilang hypervisor, sinusuportahan ang paggamit ng Dragonball Sandbox (KVM edition na na-optimize para sa mga container) na may QEMU toolkit, pati na rin ang Firecracker at Cloud Hypervisor. Kasama sa environment ng system ang initialization daemon at ang ahente. Ang ahente ay nagpapatakbo ng mga larawan ng container na tinukoy ng gumagamit sa OCI na format para sa Docker at CRI para sa Kubernetes. Kapag ginamit kasabay ng Docker, ang isang hiwalay na virtual machine ay nilikha para sa bawat lalagyan, i.e. ang kapaligirang inilunsad ng hypervisor ay ginagamit upang mag-nest ng mga lalagyan.

Paglabas ng Kata Containers 3.0 na may virtualization-based isolation

Upang bawasan ang pagkonsumo ng memorya, ginagamit ang mekanismo ng DAX (direktang pag-access sa FS na lumalampas sa cache ng pahina nang hindi ginagamit ang antas ng block device), at ginagamit ang teknolohiya ng KSM (Kernel Samepage Merging) upang i-dedupe ang magkaparehong mga lugar ng memorya, na nagbibigay-daan sa pagbabahagi ng mga mapagkukunan ng host system at pagkonekta sa iba't ibang mga guest system sa isang karaniwang template ng environment ng system.

Sa bagong bersyon:

  • Ang isang alternatibong runtime (runtime-rs) ay iminungkahi, na bumubuo sa pagpupuno ng mga lalagyan, na nakasulat sa Rust na wika (ang dating ibinigay na runtime ay nakasulat sa Go language). Ang runtime ay katugma sa OCI, CRI-O, at Containerd, na ginagawa itong tugma sa Docker at Kubernetes.
  • Isang bagong dragonball hypervisor batay sa KVM at rust-vmm ang iminungkahi.
  • Nagdagdag ng suporta para sa GPU access forwarding gamit ang VFIO.
  • Nagdagdag ng suporta para sa cgroup v2.
  • Ipinatupad ang suporta para sa pagbabago ng mga setting nang hindi binabago ang pangunahing file ng pagsasaayos sa pamamagitan ng pagpapalit ng mga bloke sa magkakahiwalay na mga file na matatagpuan sa direktoryo ng "config.d/".
  • Gumagamit ang mga kalawang na bahagi ng bagong library para sa ligtas na pagtatrabaho sa mga path ng file.
  • Ang bahagi ng virtiofsd (nakasulat sa C) ay pinalitan ng virtiofsd-rs (nakasulat sa Rust).
  • Nagdagdag ng suporta para sa sandbox isolation ng mga bahagi ng QEMU.
  • Ginagamit ng QEMU ang io_uring API para sa asynchronous na I/O.
  • Ang suporta para sa mga extension ng Intel TDX (Trusted Domain Extensions) ay ipinatupad para sa QEMU at Cloud-hypervisor.
  • Mga na-update na bahagi: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux kernel 5.19.2.

Pinagmulan: opennet.ru

Magdagdag ng komento