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

เปิดตัวโครงการ Kata Containers 3.2 แล้ว โดยพัฒนาสแต็กสำหรับจัดการการทำงานของคอนเทนเนอร์โดยใช้การแยกส่วนตามกลไกการจำลองเสมือนเต็มรูปแบบ โปรเจ็กต์นี้สร้างขึ้นโดย 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

การผสานรวมกับระบบการจัดการคอนเทนเนอร์ทำได้โดยใช้เลเยอร์ที่จำลองการจัดการคอนเทนเนอร์ ซึ่งเข้าถึงตัวแทนการจัดการในเครื่องเสมือนผ่านอินเทอร์เฟซ gRPC และพร็อกซีพิเศษ ภายในสภาพแวดล้อมเสมือนซึ่งเปิดใช้งานโดยไฮเปอร์ไวเซอร์ เคอร์เนล Linux ที่ได้รับการปรับปรุงเป็นพิเศษจะถูกใช้งาน ซึ่งมีเพียงชุดความสามารถที่จำเป็นขั้นต่ำเท่านั้น

ในฐานะไฮเปอร์ไวเซอร์ มันรองรับการใช้ Dragonball Sandbox (รุ่นของ KVM ที่ปรับให้เหมาะกับคอนเทนเนอร์) ด้วยชุดเครื่องมือ QEMU เช่นเดียวกับ Firecracker และ Cloud Hypervisor สภาพแวดล้อมของระบบประกอบด้วย daemon การเริ่มต้นและเอเจนต์ เอเจนต์จัดให้มีการดำเนินการอิมเมจคอนเทนเนอร์ที่ผู้ใช้กำหนดในรูปแบบ OCI สำหรับ Docker และ CRI สำหรับ Kubernetes เมื่อใช้ร่วมกับ Docker เครื่องเสมือนจะถูกสร้างขึ้นสำหรับแต่ละคอนเทนเนอร์ เช่น สภาพแวดล้อมที่ทำงานบนไฮเปอร์ไวเซอร์ใช้สำหรับการเปิดใช้งานคอนเทนเนอร์แบบซ้อน

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

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

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

  • นอกเหนือจากการรองรับสถาปัตยกรรม AMD64 (x86_64) แล้ว ยังมีการเผยแพร่สำหรับสถาปัตยกรรม ARM64 (Aarch64) และ s390 (IBM Z) การสนับสนุนสถาปัตยกรรม ppc64le (IBM Power) อยู่ระหว่างการพัฒนา
  • ในการจัดระเบียบการเข้าถึงอิมเมจคอนเทนเนอร์ จะใช้ระบบไฟล์ Nydus 2.2.0 ซึ่งใช้การกำหนดแอดเดรสเนื้อหาเพื่อการทำงานร่วมกันอย่างมีประสิทธิภาพกับอิมเมจมาตรฐาน Nydus รองรับการโหลดรูปภาพได้ทันที (ดาวน์โหลดเมื่อจำเป็นเท่านั้น) ช่วยขจัดข้อมูลซ้ำซ้อน และสามารถใช้แบ็กเอนด์ที่แตกต่างกันสำหรับการจัดเก็บข้อมูลจริง มีความเข้ากันได้ของ POSIX (คล้ายกับ Composefs การใช้งาน Nydus ผสมผสานความสามารถของ OverlayFS เข้ากับโมดูล EROFS หรือ FUSE)
  • ตัวจัดการเครื่องเสมือน Dragonball ได้รับการรวมเข้ากับโครงสร้างหลักของโครงการ Kata Containers ซึ่งขณะนี้จะได้รับการพัฒนาในพื้นที่เก็บข้อมูลทั่วไป
  • มีการเพิ่มฟังก์ชันการดีบักลงในยูทิลิตี้ kata-ctl สำหรับการเชื่อมต่อกับเครื่องเสมือนจากสภาพแวดล้อมโฮสต์
  • ความสามารถในการจัดการ GPU ได้รับการขยายและเพิ่มการสนับสนุนสำหรับการส่งต่อ GPU ไปยังคอนเทนเนอร์สำหรับการประมวลผลที่เป็นความลับ (Confidential Container) ซึ่งให้การเข้ารหัสข้อมูล หน่วยความจำ และสถานะการดำเนินการสำหรับการป้องกันในกรณีที่สภาพแวดล้อมของโฮสต์หรือไฮเปอร์ไวเซอร์เสียหาย
  • เพิ่มระบบย่อยสำหรับการจัดการอุปกรณ์ที่ใช้ในคอนเทนเนอร์หรือสภาพแวดล้อมแซนด์บ็อกซ์ใน Runtime-rs รองรับการทำงานกับ vfio, บล็อก, เครือข่าย และอุปกรณ์ประเภทอื่น ๆ
  • มีความเข้ากันได้กับ OCI Runtime 1.0.2 และ Kubernetes 1.23.1
  • ขอแนะนำให้ใช้รีลีส 6.1.38 พร้อมแพตช์เป็นเคอร์เนล Linux
  • การพัฒนาได้ย้ายจากการใช้ระบบบูรณาการอย่างต่อเนื่องของ Jenkins ไปยัง GitHub Actions

ที่มา: opennet.ru

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