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 составляет 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 (runtime-rs), формирующий начинку контейнеров, написанный на языке Rust (ранее поставляемый runtime написан на языке Go). Runtime совместим с OCI, CRI-O и Containerd, что позволяет использовать его с Docker и Kubernetes.
  • Предложен новый гипервизор dragonball, основанный на KVM и rust-vmm.
  • Добавлена поддержка проброса доступа к GPU, используя VFIO.
  • Добавлена поддержка cgroup v2.
  • Реализована поддержка подмены настроек без изменения основного файла конфигурации через замену блоков в отдельных файлах, размещаемых в каталоге «config.d/».
  • В компонентах на языке Rust задействована новая библиотека для безопасной работы с файловыми путями.
  • Компонент virtiofsd (написан на Си) заменён на virtiofsd-rs (написан на Rust).
  • Добавлена поддержка sandbox-изоляции компонентов QEMU.
  • В QEMU для асинхронного ввода/вывода задействован API io_uring.
  • Для QEMU и Cloud-hypervisor реализована поддержка расширений Intel TDX (Trusted Domain Extensions).
  • Обновлены компоненты: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, ядро Linux 5.19.2.

წყარო: opennet.ru

ახალი კომენტარის დამატება