CloudNative Days Fukuoka 2023、コンテナランタイムの今と未来を解説するキーノートセッションを紹介
2023年8月3日のCloudNative Days Fukuoka 2023キーノートから、Toru Komatsu氏によるコンテナランタイムに関するセッションを紹介する。Komatsu氏は、containerdやRust製のコンテナランタイムであるyoukiのコントリビュータとして知られている。
タイトルは「クラウドネイティブの基盤要素、コンテナの今と未来」でキーノートセッションとして行われた。コンテナランタイムの詳細な構成やハイレベルランタイム、ローレベルランタイムなどについても解説し、後半ではWebAssemblyの利用、コンテナ起動を高速にするLazy Pulling、OCI Runtime Specificationなどの最新情報を解説した。
最初に解説したのはKubernetesにおけるKubeletからランタイムを経てLinuxプロセスとしてコンテナが実行されるまでのコンポーネント、そしてその仕様についてだ。
そしてハイレベルランタイムであるcontainerdについて、マイクロサービス的なアーキテクチャーになっていること、プラグインの仕組みが用意されていることなどを解説。
ここで解説されたcontainerdのプラグインを持つという特徴は後半の未来のパートで引用されており、その仕組みを通じて次の話題であるWebAssemblyに繋がる内容となっている。
後半の未来のパートではKubeConやWasmConなどでも大きな話題となっているWebAssemblyについての解説から始まった。
実際にコンテナランタイムのアーキテクチャーにWebAssemblyを当てはめて説明を行い、その機能がどのようにマップされるのかを解説。ここでは最もハードウェアに近いレベルでWebAssemblyのコードが実行されることを示している。
そのためにcontainerdのサブプロジェクトとしてrunwasiというソフトウェアが開発され、現時点でDocker DesktopやAzure Kubernetes Serviceなどから利用可能であると説明した。
またコンテナの資産をそのまま変換してWebAssemblyとして実行するためのcontaier2wasmを紹介。これはNTTの徳永航平氏が開発を行っているオープンソースソフトウェアだ。
徳永氏に関しては基礎的なコンテナランタイムに関する記事があるのでそちらも参考にして欲しい。
●参考:CNDO 2021、Kubernetesとコンテナの基本的構造をNTTの徳永航平氏が解説
また須田瑛大氏が開発するコンテナイメージを遅延してプルするLazy Pullingについても解説を行った。偶然だが、須田氏も徳永氏と同じくNTTの所属である。
このスライドではPythonのコンテナがLazy Pullingだと起動に11秒、コンテナサイズが4.8KBなのに比べて従来のコンテナでは起動に41秒、サイズが321MBという違いが出ることを解説した。この仕組みについて踏み込んで解説したスライドで記載されているstargz-snapshotterが徳永氏、須田氏が開発するモジュールになる。
またハイレベルランタイムとローレベルランタイムをつなぐ仕様となるOCI Runtime Specificationについても約3年ぶりにv1.0.2からv1.1.0になったことを説明。
新しいバージョンに含まれる21個の新機能の中からコンテナ実行の優先度を変更するプルリクエストを紹介。ここでKomatsu氏はコンテナがLinuxの1プロセスであることを意識したとコメントした。
そしてKomatsu氏自身が作成したプルリクエストであるコンテナの入出力処理における優先度を設定する新機能についても簡単に触れ、同じようにコンテナのランタイムについて「こうしたい」「こういう機能が必要だ」というユーザー側の声が聞きたいと説明し、現場での要望を聞かせてくださいとデベロッパーへのコミュニケーションを歓迎することを強調した。
最後にLazy Pullingについて参考となる解説を行ったNTTの徳永氏に対して謝意を述べてセッションを終えた。
コンテナランタイムは数年前にはホットなトピックだったが、WebAssemblyが注目され、既存のコンテナとの共存や移行などが話題になるにつれて再度注目されている分野なのかもしれない。より上位レイヤーのデベロッパーにとっては詳細過ぎる話題かもしれないが、コンテナサイズを削減できるLazy Pullingは日本のコントリビュータが活躍しているエリアでもあり注目して欲しい。以下は2020年のKubeConに関する記事だが、CERNも注目していた徳永氏のstargz-snapshotterに関する解説記事である。参考にして欲しい。
●参考:Lazy pullの解説:KubeCon NA 2020 CERNの巨大な分析ジョブをコンテナ化する際の高速化から見るOSSの有機的な繋がり
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon NA 2020 CERNの巨大な分析ジョブをコンテナ化する際の高速化から見るOSSの有機的な繋がり
- runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較
- KubeCon NA 2022、日本人参加者による座談会でWebAssemblyの未来を読む
- Kubernetes 1.20から始まるDockerランタイムの非推奨化に備えよう!我々が知っておくべきこと・すべきこと
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ8~10)
- KubeCon Europe 2024からWASMとeBPFを使ってストリーム処理を解説するセッションを紹介
- KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催
- Intelが中国のベンチャーHyperと共同で開発を進める新しいコンテナランタイムKataを公開
- 「KubeCon NA 2022」から、WasmEdgeを開発するSecond StateのMichael Yuanのインタビュー