同じコンテナ技術 Docker(仮想化)とKubernets(クラスタ)の最大の違い

Dockerは仮想化。

Kubernetesはクラスタ。

仮想化、知ってる知ってる。クラスタ?同じでしょ?

・・・いいえ。180度違います。

その最大の違いは。ずばり。


Docker(仮想化)とKubernets(クラスタ)の最大の違い

Docker Podman VMware 仮想化と

Kubernetes クラスタの決定的な違いは

  • 仮想化「1台のPCでプロセス1000個動かすぞー」
  • クラスタ「1000個のプロセスを1000台のPCで動かすぞー」

仮想化は1台のPCを皆で使いましょう

Windows 11は、およそ200個のプロセス(アプリやサービス)が動作します。

「仮想化」は、1台のPCで、複数のOS=Windows 11を5個起動すれば、プロセス1000個~を動かす形です。

1台のPCを、皆で使いましょう。という考え方。


クラスタは200台のPCを1人で使いましょう

コンテナでWordPresssを起動した場合。

Docker仮想化では、1台のPCで、MariaDBとHttpdが動作します。

Kubernetsクラスタでは、2台のPCそれぞれで、MariaDBとHttpdが動作します。

つまり、Kubernetsは、200個のプロセスを、200台のPCで動かすための基盤~クラスタ基盤となります。

仮想化とは、考え方が真逆といえますよね。1台を皆で使うか。200台を一人で使うか。


クラスタに高価なPCは必要ないけれど 複数ユーザが快適に接続

VMWareやDockerのような仮想化は、高価なPCが必要です。

Kubernetsは、極端な話、仮想化の1/1000の性能のPCを、1000台接続して、同じ性能として使いましょう、という考え方になります。

1000台のうち、1~2台故障しても、Kubernetesが別の元気なPCに、プロセスをライブ・マイグレーションしてくれるため、使用者は故障に気づきません。

高価なPCを皆で使っても、故障すればサービス停止です。

クラスタは、故障してもプロセスが元気なPCに移動します。実際は、200台を一人で使うのではなく、複数のユーザが同時に使用してこそ、クラスタの性能が活かせるはずです。


まあ、何が言いたかったかというと。

  • クラスタを、仮想化の延長として見ているのならそれは間違い。
  • クラスタに高価なPC(スケールアップ)は必要ない。安価なPCをたくさん接続する(スケールアウト)という考え方。

このあたりが、クラスタの肝だと思います。

同じコンテナ技術ですが、方向性は真逆ですよ。と記録させて頂きます。

スポンサーリンク

フォローする

スポンサーリンク