[技術解説]

いまさら聞けないDocker/Kubernetes

DX時代のアプリケーション基盤を提供するDockerとKubernetesとは?

2018年2月28日(水)工藤 淳(フリーランスライター)

サーバー仮想化を可能にした「ハイパーバイザー」という技術は、ITシステムの構築・運用に革命的な変化をもたらした。1台の物理サーバー上で複数のOSやアプリケーションを稼働可能にするハイパーバイザーは、パブリッククラウドの基盤技術として現在のITインフラに欠かせない存在となっている。その一方で、ハイパーバイザーとはタイプの異なる「コンテナ型仮想化」の技術が急速に発展し、注目を集めている。コンテナ型仮想化で現在主流となっているのがDockerであり、Dockerと連携して環境を管理するツールがKubernetesだ。今やコンテナ型仮想化の代名詞ともいえる、この2つのキーワードを今回は押さえよう。

サーバー利用・運用の可能性を大きく広げるコンテナ技術

 今回採り上げるDockerとKubernetesは、現代のシステム仮想化の中心ともいうべきテクノロジーだ。

 まずDockerだが、これはいわゆるコンテナ技術の1つで、現代ではコンテナといえばDockerと言うほどメジャーな存在になっている。コンテナ技術自体はDockerの登場以前から存在しており、サーバー仮想化を実現する上で重要な手法の一つとされてきた。

 そもそもサーバー仮想化で広く使われているハイパーバイザーは、同じサーバーの上にLinuxやWindowsといった複数のOSを稼働させ、少ない台数の物理サーバーでさまざまな機能やサービスを実現できるという技術だ。だがこうした物理サーバー上に仮想サーバーを構築する「仮想マシン型」の仮想化には課題もある。

 課題の1つは、仮想化のオーバーヘッドが大きいことである。仮想マシン型の仮想化では、仮想マシンごとにゲストOSを動作させる必要があり、さらにその下ではハイパーバイザーが動いている。ハイパーバイザーはハードウェアをエミュレーションするため、そこに一定のメモリーやCPUリソースが割かれる。さらに管理用のホストOSを動かす必要もあるため、純粋にアプリケーションのために使えるリソースが削られてしまう。

 また、仮想マシンごとにゲストOSが必要ということは、それだけ設定・管理の工数が増えることを意味する。仮想マシンの数が増えれば、その分だけ管理負荷が増大してしまう。

 一方、コンテナ型の仮想化では、ホストOS上にアプリケーションとアプリケーションの動作に必要な“つなぎ”の機能を含んだパッケージを作る。これがコンテナだ。コンテナ型では、そのアプリケーションの専用区画を直接ホストOS上に配置できるため、オーバーヘッドをきわめて小さく抑えられる。ホストOSをコンテナ間で共有するため、コンテナが増えても環境構築の手間は増えない。ただし、仮想マシン型に比べると、コンテナ型の環境自由度は低く、複数のOSを1台の物理サーバーで動かすといったことは基本的にできない。

 コンテナ型の仮想化にはもう1つ大きなメリットがある。オーバーヘッドが小さいので、仮想マシン型以上の高密度な集積が可能になることだ。この利点を活かして、コンテナ技術は主にマルチテナント・サービスなどに活用されてきた。

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
関連キーワード

デジタルトランスフォーメーション / Kubernetes / Docker / コンテナ / マイクロサービス

関連記事

トピックス

[Sponsored]

いまさら聞けないDocker/Kubernetesサーバー仮想化を可能にした「ハイパーバイザー」という技術は、ITシステムの構築・運用に革命的な変化をもたらした。1台の物理サーバー上で複数のOSやアプリケーションを稼働可能にするハイパーバイザーは、パブリッククラウドの基盤技術として現在のITインフラに欠かせない存在となっている。その一方で、ハイパーバイザーとはタイプの異なる「コンテナ型仮想化」の技術が急速に発展し、注目を集めている。コンテナ型仮想化で現在主流となっているのがDockerであり、Dockerと連携して環境を管理するツールがKubernetesだ。今やコンテナ型仮想化の代名詞ともいえる、この2つのキーワードを今回は押さえよう。

PAGE TOP