コンテナランタイム「containerd 2.0」がまもなく登場。何が変わるのか?

2024年8月16日

コンテナランタイムの代表的な実装の1つである「containerd」の初のメジャーバージョンアップとなる「containerd 2.0」の開発が進んでいます。

今年(2024年)3月に最初のリリース候補版「v2.0.0-rc.0」が登場し、6月には「v2.0.0-rc.3」まで進捗しているため、数カ月以内には正式版が登場すると思われます。

containerdのこれまで

もともとcontainerdはDockerコンテナの一部として実装され、2016年に独立したオープンソースプロジェクトとなりました。現在でもDockerのコンテナランタイムとして採用されています。

参考:Dockerエンジンのコアランタイムが「containerd」として分離、独立したオープンソースプロジェクトに。Docker、AWS、Google、IBM、マイクロソフトらが協力して開発推進へ

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のメジャーバージョンアップとなる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 footprints and variety of use cases.

初めてのメジャーリリースであるcontainerd 2.xは、containerd 1.xからの容易なアップグレードと、containerdのコア機能セットの継続的な安定性にフォーカスしています。本リリースには、前回の1.xリリースで追加された新機能の安定化と、1.xで非推奨となった機能の削除が含まれています。その目的は、containerdの大きなユーザーコミュニティと、増大するデプロイメントの範囲および様々なユースケースを将来にわたってサポートすることです。

この説明でcontainerd 1.xからのアップグレードの容易性と安定性にフォーカスしていると説明されているように、containerd 2.0は比較的地味なメジャーバージョンアップのようです。

ソフトウェアの実行基盤として使われるcontainerdのバージョンアップとしては、これは適切なコンセプトと言えそうです。

containerd 2.0ではNRIとCDIがデフォルトで有効に

もちろんメジャーバージョンアップに伴って多くの新機能や変更なども行われますが、いずれも大きな新機能や変更というものではないようです。その中から重要そうなものを2つ紹介しましょう。

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本