LoginSignup
2
1

More than 3 years have passed since last update.

Kubernetes基礎(2):VM vs Container

Last updated at Posted at 2020-05-14

VM vs Container

1. VMとContainer仮想化ソリューションの種類

vm_container.png
Containerを仮想化させてくれるソリューションの中ではDockerを最も多く使用している。

2. Container仮想化

vm_container2.png
DockerがContainerを作ってくれる。
Linux6、7のようにバージョンによって、デフォルトでインストールされるライブラリが違う。
Linux6で開発完了したシステムをLinux7で起動をさせると、バージョンの違い等による問題が発生するだろう。
Linux6にDockerをインストールしてA Serviceのイメージを作ることができる。
イメージには、A Serviceとそのサービスが実行されるために必要なライブラリが一緒に入っている。
Linux7のバージョンに、DockerがインストールされていればLinux6環境のA ServiceのイメージからContainerの作成ができ、A Serviceの実行ができる。
A Serviceは自分の環境の中にあるOpenStack Library等を使うため、Linux7の環境でもシステムを実行することができる。

3. Container資源隔離技術

vm_container3.png
Dockerは、複数のContainer間でホストのリソースを分離して使えるようにしてくれる。
Linux技術の「cgroup」と「namespace」を使うことで可能になった。
・namespace:カーネルに関連した領域を分離をしてくれる。
・cgroup:リソースの領域を分離をしてくれる。

DockerのようなContainer仮想化ソリューションは、OSが提供するリソースの分離技術を利用してContainerという単位でサービスを分離できるようにしてくれる。
これを使うとContainer仮想化ソリューションがインストールされているOSでは、開発環境を気にせずにDeployが可能になる。

3. メリット&デメリット

vm_container4.png
処理速度
 Containerのメリットはシステム構造的に、単一のOSを共有する概念であり、VMはそれぞれのOSを立ち上げるため、
 Containerのほうが速い。
 デメリットは、VMはWindowsを使っていてもGuest OSにLinuxをインストールして使うことができる。
 Containerは、Linuxの上にWindowを使うことができない。
Security
 SecurityのほうもVMは1つのGuest OSに問題が発生しても、他のGuest OSやHost OSとは完全に分離されているので、
 影響はないが、Containerは、1つのContainerに問題が発生してOSの領域に不正アクセスされてしまうと、
 他のContainerにも影響が及ぶ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1