LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問2
コンテナ技術の利用/コンテナの基本原理と内部構造コンテナランタイムにおける「高レベルランタイム」(containerdやCRI-O等)と「低レベルランタイム」(runcやcrun等)の役割分担として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)
- A高レベルランタイムがOCIランタイム仕様に従って名前空間やcgroupsを直接操作し、低レベルランタイムはKubernetesのCRIとの連携やイメージの取得を担当する
- B高レベルランタイムはイメージの取得・管理やライフサイクル管理と上位APIを担い、低レベルランタイムがOCI仕様に従って実際のコンテナプロセスを生成する
- C高レベルランタイムはカーネルモジュールとして動作し、低レベルランタイムだけがユーザー空間のプロセスとして動作する
- D両者は同じOCIランタイム仕様の別実装であり、どちらか一方を入れればコンテナを実行できる
正解:B
解説
高レベルランタイム(containerd、CRI-O等)は、イメージの取得・管理、コンテナのライフサイクル管理、KubernetesのCRI(Container Runtime Interface)等の上位APIとの連携を担当します。実際にOCI(Open Container Initiative)ランタイム仕様にもとづいて、名前空間やcgroupsを使いコンテナプロセスを生成するのは、runcやcrunなどの低レベルランタイムの役割です。高レベルランタイムは低レベルランタイムを呼び出して実際の生成処理を委譲します。
選択肢ごとの解説
- A誤り。名前空間やcgroupsを操作して実際にプロセスを生成するのが低レベルランタイム、CRI連携やイメージ取得が高レベルランタイムで、役割が逆です。
- B正しい。高レベルランタイムがイメージ管理・ライフサイクル管理・上位APIを担い、低レベルランタイムが実際のプロセス生成を担当します。
- C誤り。高レベル・低レベルのいずれもユーザー空間のプロセスであり、カーネルモジュールとして動作するものではありません。
- D誤り。両者は同じ階層の別実装ではなく、高レベルランタイムが低レベルランタイムを呼び出して処理を委譲する上下関係にあります。