การเปิดตัว Kata Containers 3.0 พร้อมการแยกตามระบบเสมือนจริง

หลังจากสองปีของการพัฒนา โครงการ Kata Containers 3.0 ได้รับการเผยแพร่ โดยพัฒนาสแต็กสำหรับจัดระเบียบการทำงานของคอนเทนเนอร์โดยใช้การแยกส่วนตามกลไกการจำลองเสมือนเต็มรูปแบบ โปรเจ็กต์นี้สร้างขึ้นโดย Intel และ Hyper โดยรวม Clear Containers และเทคโนโลยี runV รหัสโครงการเขียนด้วยภาษา Go และ Rust และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 การพัฒนาโครงการได้รับการดูแลโดยคณะทำงานที่สร้างขึ้นภายใต้การอุปถัมภ์ขององค์กรอิสระ OpenStack Foundation ซึ่งรวมถึงบริษัทต่างๆ เช่น Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE และ ZTE .

หัวใจของ Kata คือรันไทม์ ซึ่งให้ความสามารถในการสร้างเครื่องเสมือนขนาดกะทัดรัดที่ทำงานโดยใช้ไฮเปอร์ไวเซอร์เต็มรูปแบบ แทนที่จะใช้คอนเทนเนอร์แบบเดิมที่ใช้เคอร์เนล Linux ทั่วไป และแยกออกจากกันโดยใช้เนมสเปซและกลุ่ม c การใช้เครื่องเสมือนช่วยให้คุณได้รับความปลอดภัยในระดับที่สูงขึ้นซึ่งป้องกันการโจมตีที่เกิดจากการใช้ประโยชน์จากช่องโหว่ในเคอร์เนล 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 สภาพแวดล้อมของระบบประกอบด้วย daemon การเริ่มต้นและเอเจนต์ เอเจนต์จัดให้มีการดำเนินการอิมเมจคอนเทนเนอร์ที่ผู้ใช้กำหนดในรูปแบบ OCI สำหรับ Docker และ CRI สำหรับ Kubernetes เมื่อใช้ร่วมกับ Docker เครื่องเสมือนจะถูกสร้างขึ้นสำหรับแต่ละคอนเทนเนอร์ เช่น สภาพแวดล้อมที่ทำงานบนไฮเปอร์ไวเซอร์ใช้สำหรับการเปิดใช้งานคอนเทนเนอร์แบบซ้อน

การเปิดตัว Kata Containers 3.0 พร้อมการแยกตามระบบเสมือนจริง

เพื่อลดการใช้หน่วยความจำ กลไก DAX จะถูกใช้งาน (การเข้าถึงโดยตรงไปยังระบบไฟล์ ข้ามแคชของเพจโดยไม่ต้องใช้ระดับอุปกรณ์บล็อก) และเพื่อขจัดข้อมูลซ้ำซ้อนของพื้นที่หน่วยความจำที่เหมือนกัน จึงใช้เทคโนโลยี KSM (Kernel Samepage Merging) ซึ่งช่วยให้คุณ เพื่อจัดระเบียบการแบ่งปันทรัพยากรระบบโฮสต์และเชื่อมต่อกับระบบแขกที่แตกต่างกัน แชร์เทมเพลตสภาพแวดล้อมระบบทั่วไป

ในเวอร์ชันใหม่:

  • มีการเสนอรันไทม์ทางเลือก (runtime-rs) ซึ่งสร้างการเติมคอนเทนเนอร์ที่เขียนด้วยภาษา Rust (รันไทม์ที่ให้มาก่อนหน้านี้เขียนด้วยภาษา Go) รันไทม์เข้ากันได้กับ OCI, CRI-O และ Containerd ทำให้สามารถใช้งานร่วมกับ Docker และ Kubernetes ได้
  • มีการเสนอไฮเปอร์ไวเซอร์ dragonball ใหม่ที่ใช้ KVM และrust-vmm
  • เพิ่มการรองรับการส่งต่อการเข้าถึง GPU โดยใช้ VFIO
  • เพิ่มการรองรับ 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 kernel 5.19.2

ที่มา: opennet.ru

เพิ่มความคิดเห็น