3.0 年間の開発を経て、Kata Containers 2.0 プロジェクトのリリースが公開されました。このプロジェクトは、本格的な仮想化メカニズムに基づく分離を使用してコンテナーの実行を組織化するためのスタックを開発しました。 このプロジェクトは、Intel と Hyper によって、Clear Containers と runV テクノロジーを組み合わせて作成されました。 プロジェクト コードは Go と Rust で書かれており、Apache XNUMX ライセンスに基づいて配布されます。 このプロジェクトの開発は、Canonical、China Mobile、Dell/EMC、EasyStack、Google、Huawei、NetApp、Red Hat、SUSE、ZTE などの企業が含まれる独立組織 OpenStack Foundation の後援の下に設立されたワーキング グループによって監督されています。 。
Kata の中心となるのはランタイムです。これは、一般的な Linux カーネルを使用し、名前空間と cgroup を使用して分離される従来のコンテナを使用する代わりに、完全なハイパーバイザーを使用して実行されるコンパクトな仮想マシンを作成する機能を提供します。 仮想マシンを使用すると、Linux カーネルの脆弱性の悪用によって引き起こされる攻撃から保護する、より高いレベルのセキュリティを実現できます。
Kata Containers は、同様の仮想マシンを使用して従来のコンテナの保護を強化する機能を備えた、既存のコンテナ分離インフラストラクチャへの統合に重点を置いています。 このプロジェクトは、軽量仮想マシンと、さまざまなコンテナ分離インフラストラクチャ、コンテナ オーケストレーション プラットフォーム、および OCI (Open Container Initiative)、CRI (Container Runtime Interface)、CNI (Container Networking Interface) などの仕様との互換性を確保するためのメカニズムを提供します。 Docker、Kubernetes、QEMU、OpenStack との統合にツールを利用できます。
コンテナ管理システムとの統合は、コンテナ管理をシミュレートするレイヤーを使用して実現されます。このレイヤーは、gRPC インターフェイスと特別なプロキシを介して仮想マシン内の管理エージェントにアクセスします。 ハイパーバイザーによって起動される仮想環境内では、必要な最小限の機能セットのみを含む、特別に最適化された Linux カーネルが使用されます。
ハイパーバイザーとして、QEMU ツールキットを使用した Dragonball Sandbox (コンテナー用に最適化された KVM のエディション) の使用、および Firecracker および Cloud Hypervisor の使用をサポートします。 システム環境には、初期化デーモンとエージェントが含まれます。 このエージェントは、Docker の場合は OCI 形式、Kubernetes の場合は CRI 形式でユーザー定義のコンテナー イメージを実行できます。 Docker と組み合わせて使用すると、コンテナごとに個別の仮想マシンが作成されます。 ハイパーバイザー上で実行される環境は、コンテナーのネストされた起動に使用されます。
メモリ消費量を削減するために、DAX メカニズムが使用され (ファイル システムへの直接アクセス、ブロック デバイス レベルを使用せずにページ キャッシュをバイパス)、同一のメモリ領域を重複排除するために KSM (Kernel Samepage Merging) テクノロジが使用されます。ホスト システム リソースの共有を整理し、異なるゲスト システムに接続するには、共通のシステム環境テンプレートを共有します。
収録曲:
- 代替ランタイム (runtime-rs) が提案されています。これはコンテナの充填を形成し、Rust 言語で書かれています (以前に提供されていたランタイムは Go 言語で書かれていました)。 ランタイムは OCI、CRI-O、Containerd と互換性があり、Docker や Kubernetes で使用できます。
- KVM と Rust-vmm に基づいた新しいドラゴンボールハイパーバイザーが提案されました。
- VFIO を使用した GPU へのアクセスの転送のサポートが追加されました。
- cgroup v2 のサポートが追加されました。
- メインの設定ファイルを変更せずに設定を変更するためのサポートは、「config.d/」ディレクトリにある別のファイルのブロックを置き換えることによって実装されました。
- Rust コンポーネントには、ファイル パスを安全に操作するための新しいライブラリが含まれています。
- virtiofsd コンポーネント (C で書かれた) は、virtiofsd-rs (Rust で書かれた) に置き換えられました。
- QEMU コンポーネントのサンドボックス化のサポートが追加されました。
- QEMU は、非同期 I/O に io_uring API を使用します。
- Intel TDX (Trusted Domain Extensions) 拡張機能のサポートが QEMU とクラウド ハイパーバイザーに実装されました。
- 更新されたコンポーネント: QEMU 6.2.0、クラウドハイパーバイザー 26.0、Firecracker 1.1.0、Linux カーネル 5.19.2。
出所: オープンネット.ru