仮想化はクラウド時代の中核技術。VM とコンテナの違い、Kubernetes の役割を整理しましょう。
仮想化 は1台の物理マシン上で複数の論理マシンを動かす技術。
ハイパーバイザ 型と コンテナ 型があります。
VM とコンテナって何が違うの?
VM はゲスト OS まで丸ごと持つから完全に隔離できるけど重いのよ (数GB)。
コンテナはホストの OS カーネルを共有してプロセス分離するだけだから軽い (数十〜数百MB) のね。
Docker と Kubernetes の関係は…?
Docker は単一ホスト上でコンテナを動かすツールですね。
一方 Kubernetes は複数ホストにまたがるコンテナを束ねて、デプロイ・スケーリング・自己回復・サービス検出といったオーケストレーションを担う仕組みです。
AP では『VM とコンテナの起動時間・分離レベル・移植性』の比較や、『Kubernetes が提供する機能』を問う問題がよく出るのよ。
確認クイズ
コンテナ型仮想化が、VM (ハイパーバイザ型) と比較して持つ主な特徴として、最も適切なものはどれか。
- ゲスト OS のカーネルを各コンテナで独立に持つため、強い分離が得られる
- ホスト OS のカーネルを共有するため、起動時間が短くオーバヘッドが小さい
- ハードウェアの完全な仮想化が必要であり、専用 CPU 命令が必須である
- GUI アプリケーションの実行に特化している
こたえを見る
正解: 2. ホスト OS のカーネルを共有するため、起動時間が短くオーバヘッドが小さい
コンテナはホスト OS カーネルを共有してプロセス分離だけ行うため、VM のようなゲスト OS のオーバヘッドがなく、起動時間が秒単位で済みます。一方、分離は VM より弱いため、強い分離が必要なケース (マルチテナント) では VM や micro-VM (Firecracker など) を選ぶこともあります。