コンテナランタイム「containerd 2.0」正式リリース、登場以来初のメジャーバージョンアップ。1.xとの互換性は維持

2024年11月12日

コンテナランタイムの代表的な実装の1つである「containerd」の初のメジャーバージョンアップとなる「containerd 2.0」正式版がリリースされました

fig

containerdはDockerが登場したときにその一部として実装され、2016年に独立したオープンソースプロジェクトとなり、2017年3月にCloud Native Computing Foundationに寄贈された後、7月にバージョン1.0に到達しています。

2018年にリリースされたcontainerd 1.1では、Kubernetesの標準APIであるContainer Runtime Interface (CRI)に対応するなど、現在でも主要なコンテナランタイムとして使われています。

containerdは、いわゆる高レベルコンテナランタイムとして外部とのインターフェイスやコンテナイメージを管理する役割などを備えています。実際にコンテナを実行する低レベルランタイムには「runC」を採用しています。

参考:コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2

containerd 2.0の新機能など

containerd 2.0の特徴は、リリースページの説明文に簡潔にまとめられているので引用します。

The first major release of containerd 2.x focuses on the continued stability of containerd's core feature set with an easy upgrade from containerd 1.x. This release includes the stabilization of new features added in the last 1.x release as well as the removal of features which were deprecated in 1.x. The goal is to support the vast community of containerd users well into the future along with their ever increasing deployment foot prints and variety of use cases.

最初のメジャーリリースとなるcontainerd 2.xは、containerd 1.xからの容易なアップグレードとともに、containerdのコア機能群の安定性を継続することに重点を置いています。 このリリースには、前回の1.xリリースで追加された新機能の安定化と、1.xで非推奨となった機能の削除が含まれています。その目的は、増え続けるデプロイメントのフットプリントと多様なユースケースとともに将来にわたってサポートすることです。

このようにcontainerd 2.0はcontanerd 1.0との互換性と安定性に重点が置かれているのだと説明されています。その上で、いくつかの新機能なども追加されているので、主なものを紹介しましょう。

Sandboxサービスが安定版に
これまでコンテナ管理を抽象化する場合にはshimを用いていました。例えばWebAssemblyに対応する場合にはWebAssemblyをコンテナのように見せる「containerd-wasm-shim」などによる抽象化が行われていましたが、Sandboxサービスによってコンテナを抽象化する機能が組み込まれたことで、抽象的なコンテナ管理がより柔軟にできるようになりました。

Sandboxed CRIがデフォルトに
containerdのCRIプラグインは、前述のようにSandboxサービスが安定版になったことに伴い、Snadboxed CRIがデフォルトとなりました。

NRI(Node Resource Interface)がデフォルトで有効に
NRI(Node Resource Interface)はKubernetes上のコンテナに対してスケジューリング、CPUやメモリなどのパラメータの参照や変更を行うインターフェイスを提供します。containerd 2.0からデフォルトで有効になります。

CDI(Container Device Interface)がデフォルトで有効に
コンテナからGPUなどのデバイスへのアクセスを抽象化するCDI(Container Device Interface)がcontainerd 2.0でデフォルトで有効になり、GPUなどのデバイスサポートを容易にします。

あわせて読みたい

Docker クラウドネイティブ コンテナ型仮想化




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本