仮想化 (VM・コンテナ・Kubernetes)

VM とコンテナの違い、Docker・Kubernetes の役割、ハイパーバイザの分類を整理。

仮想化はクラウド時代の中核技術。VM とコンテナの違い、Kubernetes の役割を整理しましょう。

鳴海 理央(普段) 鳴海 理央

仮想化 は1台の物理マシン上で複数の論理マシンを動かす技術。
ハイパーバイザ 型と コンテナ 型があります。

砂原 ニコ(普段) 砂原 ニコ

VM とコンテナって何が違うの?

緒方 ナオミ 先生(笑顔) 緒方 ナオミ 先生

VM はゲスト OS まで丸ごと持つから完全に隔離できるけど重いのよ (数GB)。
コンテナはホストの OS カーネルを共有してプロセス分離するだけだから軽い (数十〜数百MB) のね。

藤咲 まりあ(普段) 藤咲 まりあ

Docker と Kubernetes の関係は…?

鳴海 理央(普段) 鳴海 理央

Docker は単一ホスト上でコンテナを動かすツールですね。
一方 Kubernetes は複数ホストにまたがるコンテナを束ねて、デプロイ・スケーリング・自己回復・サービス検出といったオーケストレーションを担う仕組みです。

緒方 ナオミ 先生(普段) 緒方 ナオミ 先生

AP では『VM とコンテナの起動時間・分離レベル・移植性』の比較や、『Kubernetes が提供する機能』を問う問題がよく出るのよ。

確認クイズ

コンテナ型仮想化が、VM (ハイパーバイザ型) と比較して持つ主な特徴として、最も適切なものはどれか。

  1. ゲスト OS のカーネルを各コンテナで独立に持つため、強い分離が得られる
  2. ホスト OS のカーネルを共有するため、起動時間が短くオーバヘッドが小さい
  3. ハードウェアの完全な仮想化が必要であり、専用 CPU 命令が必須である
  4. GUI アプリケーションの実行に特化している
こたえを見る

正解: 2. ホスト OS のカーネルを共有するため、起動時間が短くオーバヘッドが小さい

コンテナはホスト OS カーネルを共有してプロセス分離だけ行うため、VM のようなゲスト OS のオーバヘッドがなく、起動時間が秒単位で済みます。一方、分離は VM より弱いため、強い分離が必要なケース (マルチテナント) では VM や micro-VM (Firecracker など) を選ぶこともあります。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。