LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問10
コンテナ技術の利用/コンテナの基本原理と内部構造コンテナランタイムのcrunの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)
- AGo言語で実装された高レベルランタイムで、KubernetesのCRIを実装し、イメージの取得と管理も担う
- Bユーザー空間でLinuxのシステムコールを再実装し、コンテナのシステムコールを横取りして処理する
- CKata Containersのように、コンテナごとに軽量な仮想マシンを起動し、その中でゲストカーネルを動かして分離する
- DC言語で実装されたOCI準拠の低レベルランタイムで、runcと置き換えてPodman等から利用できる
正解:D
解説
crunは、OCIランタイム仕様に準拠した低レベルコンテナランタイムで、C言語で実装されています。runcと同じ役割を持ち、名前空間やcgroupsを設定して実際のコンテナプロセスを生成します。Go言語で書かれたruncに比べて実行ファイルが小さく、起動が速くメモリ使用量も少ないことが特徴です。PodmanやCRI-Oなどの上位ツールから、runcの代わりに呼び出すランタイムとして設定できます。
選択肢ごとの解説
- A誤り。これはCRI-Oの説明です。crunはイメージの管理やCRIの実装は行わない低レベルランタイムです。
- B誤り。ユーザー空間でシステムコールを処理してホストカーネルとの間に分離層を設けるのはgVisorの仕組みです。
- C誤り。コンテナごとに軽量VMを起動するのはKata Containersの方式です。crunはホストのカーネル上で名前空間とcgroupsを設定するだけの低レベルランタイムです。
- D正しい。crunはC言語で書かれたOCI準拠の低レベルランタイムで、runcの代替として使えます。