Pagpagawas sa Kata Containers 3.0 nga adunay virtualization-based isolation

Pagkahuman sa duha ka tuig nga pag-uswag, ang pagpagawas sa proyekto sa Kata Containers 3.0 gipatik, nga nagpalambo sa usa ka stack alang sa pag-organisar sa pagpatuman sa mga sulud gamit ang pagkalain base sa hingpit nga mga mekanismo sa virtualization. Ang proyekto gimugna sa Intel ug Hyper pinaagi sa paghiusa sa Clear Containers ug runV nga mga teknolohiya. Ang code sa proyekto gisulat sa Go ug Rust, ug giapod-apod ubos sa lisensya sa Apache 2.0. Ang pagpalambo sa proyekto gidumala sa usa ka working group nga gimugna ubos sa pagdumala sa independent organization OpenStack Foundation, nga naglakip sa mga kompanya sama sa Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE ug ZTE .

Sa kasingkasing sa Kata mao ang runtime, nga naghatag og abilidad sa paghimo og mga compact virtual machines nga nagdagan gamit ang usa ka bug-os nga hypervisor, imbes sa paggamit sa tradisyonal nga mga sudlanan nga naggamit sa usa ka komon nga Linux kernel ug nahimulag gamit ang namespaces ug cgroups. Ang paggamit sa mga virtual nga makina nagtugot kanimo sa pagkab-ot sa mas taas nga lebel sa seguridad nga nanalipod batok sa mga pag-atake tungod sa pagpahimulos sa mga kahuyangan sa Linux kernel.

Ang Kata Containers naka-focus sa pag-integrate sa kasamtangan nga container isolation infrastructure nga adunay abilidad sa paggamit sa susamang virtual machines aron mapalambo ang proteksyon sa tradisyonal nga containers. Naghatag ang proyekto og mga mekanismo aron masiguro ang pagkaangay sa gaan nga virtual nga mga makina nga adunay lainlaing mga imprastraktura sa pagkalain sa sulud, mga platform sa orkestra sa sulud ug mga detalye sama sa OCI (Open Container Initiative), CRI (Container Runtime Interface) ug CNI (Container Networking Interface). Anaa ang mga himan alang sa panagsama sa Docker, Kubernetes, QEMU ug OpenStack.

Pagpagawas sa Kata Containers 3.0 nga adunay virtualization-based isolation

Ang integrasyon sa mga sistema sa pagdumala sa sudlanan makab-ot gamit ang usa ka layer nga nagsundog sa pagdumala sa sudlanan, nga nag-access sa nagdumala nga ahente sa virtual machine pinaagi sa gRPC interface ug usa ka espesyal nga proxy. Sa sulod sa virtual nga palibot, nga gilunsad sa hypervisor, gigamit ang usa ka espesyal nga gi-optimize nga kernel sa Linux, nga adunay sulud lamang nga minimum nga set sa gikinahanglan nga mga kapabilidad.

Isip usa ka hypervisor, gisuportahan niini ang paggamit sa Dragonball Sandbox (usa ka edisyon sa KVM nga gi-optimize para sa mga sudlanan) nga adunay QEMU toolkit, ingon man ang Firecracker ug Cloud Hypervisor. Ang palibot sa sistema naglakip sa usa ka inisyal nga daemon ug usa ka ahente. Naghatag ang ahente sa pagpatuman sa mga imahe sa sudlanan nga gitakda sa gumagamit sa format nga OCI alang sa Docker ug CRI alang sa Kubernetes. Kung gigamit kauban ang Docker, usa ka bulag nga virtual machine ang gihimo alang sa matag sudlanan, i.e. Ang palibot nga nagdagan sa ibabaw sa hypervisor gigamit alang sa salag nga paglansad sa mga sudlanan.

Pagpagawas sa Kata Containers 3.0 nga adunay virtualization-based isolation

Aron makunhuran ang pagkonsumo sa memorya, gigamit ang mekanismo sa DAX (direkta nga pag-access sa file system, pag-bypass sa cache sa panid nga wala gigamit ang lebel sa block device), ug aron ma-deduplicate ang parehas nga mga lugar sa memorya, gigamit ang teknolohiya sa KSM (Kernel Samepage Merging), nga nagtugot kanimo sa pag-organisar sa pagpaambit sa mga kapanguhaan sa sistema sa host ug pagkonektar sa lain-laing mga sistema sa bisita magpaambit sa usa ka komon nga template sa palibot sa sistema.

Sa bag-ong bersyon:

  • Gisugyot ang usa ka alternatibo nga runtime (runtime-rs), nga nagporma sa pagpuno sa mga sudlanan, nga gisulat sa Rust nga pinulongan (ang kaniadto gihatag nga runtime gisulat sa Go language). Ang runtime nahiuyon sa OCI, CRI-O ug Containerd, nga gitugotan kini nga magamit sa Docker ug Kubernetes.
  • Usa ka bag-ong dragonball hypervisor nga gibase sa KVM ug rust-vmm ang gisugyot.
  • Gidugang nga suporta alang sa pagpasa sa pag-access sa GPU gamit ang VFIO.
  • Gidugang nga suporta alang sa cgroup v2.
  • Ang suporta alang sa pag-usab sa mga setting nga walay pagbag-o sa nag-unang configuration file gipatuman pinaagi sa pag-ilis sa mga bloke sa lain nga mga file nga nahimutang sa "config.d/" nga direktoryo.
  • Ang mga sangkap sa Rust naglakip sa usa ka bag-ong librarya alang sa luwas nga pagtrabaho sa mga agianan sa file.
  • Ang virtiofsd component (gisulat sa C) gipulihan sa virtiofsd-rs (gisulat sa Rust).
  • Gidugang nga suporta alang sa sandboxing QEMU nga mga sangkap.
  • Gigamit sa QEMU ang io_uring API para sa asynchronous nga I/O.
  • Ang suporta alang sa Intel TDX (Trusted Domain Extensions) nga mga extension gipatuman para sa QEMU ug Cloud-hypervisor.
  • Gi-update ang mga sangkap: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux kernel 5.19.2.

Source: opennet.ru

Idugang sa usa ka comment