検索
特集/連載

GoogleのDocker管理ツール「Kubernetes」基礎の基礎なぜKubernetesが魅力的なのか

Dockerの普及と共にさまざまなツールが登場しているが、中でもGoogleのKubernetesに注目が集まっている。Kubernetesとは何か? どのようなメリットがあり、なぜ注目されているのかを解説する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 2014年は「Docker」にとって重要な1年になった。Dockerはたったの12カ月間で、シンプルなオープンソースのコンテナ管理プロジェクトから強力なプラットフォームへと進化した。

 Dockerの他にも小さなオープンソースプロジェクトが何百とあり、米Amazon Web Services(AWS)、米Google、米IBM、米Microsoft、米Red Hat、米VMwareといった大手プラットフォーム企業がこれらのサポートを約束している。Googleはコンテナのホスティングサービスを公式に提供した初のパブリッククラウド企業の1つだった。数十億個のコンテナを管理した確かな経験に支えられ、同社は開発者への社内ツール公開にすぐに乗り出した。

 同社はまず、オープンソースのコンテナオーケストレーションおよびクラスタ管理ツール「Kubernetes」を発表した。その後、Kubernetes「Google Container Engine」(GKE)をリリースした。GKEは、同社のIaaSプラットフォーム「Google Compute Engine」(GCE)の能力とDockerを融合したものだ。まだα版(Googleの定義ではアーリーアクセス/テクニカルプレビュー版)だが、GKEはコンテナ管理の主要なビルディングブロックを全て備えた初のツールの1つになる。

 GKEの目的は、開発チームや運用チームがコンテナベースのワークロードを効率良く管理できるようにすることだ。どんな複雑さも、ありふれた管理タスクも、シンプルなユーザーエクスペリエンスと使いやすいコマンドラインツールがカバーしてくれる。

Kubernetesを理解する

 KubernetesはGKEの基盤となるものだ。知らなくても開発者がGKEを使用するのに支障はないが、その概念を理解することは役に立つ。コンテナ化されたアプリケーションは、基盤となるインフラに依存しない。必要なOS、ランタイム、ライブラリ、フレームワーク、依存関係を1つのユニットとしてパッケージ化するので、複数のコンテナを単一のホストに展開したり、複数のホストに分散することが可能だ。

 依存関係がある別のコンテナを特定できれば、コンテナはどこに展開されても問題ない。コンテナが持つこの特性は、インフラの複雑さを緩和する。仮想マシン(VM)一式がプロビジョニングされると、単一の計算ユニットとしてまとめて扱えるようになり、コンテナのクラスタを実行することが可能になる。

 Dockerは各コンテナのライフサイクルを効果的に管理するが、開発者にはコンテナのクラスタ全体を管理するツールが必要だ。コンテナ化されたアプリケーションは、動的に接続し合うために検出メカニズムを必要とする。例えば、Webサーバコンテナはデータベースコンテナを検出して接続しなくてはならない。Kubernetesは、クラスタで実行しているコンテナ化されたアプリケーションを検出して、そのライフサイクルを管理するツールだ。DevOpsの観点からいうと、Kubernetesは数個のコンテナの実行から何万個ものコンテナに対処する大規模な導入まで、クラスタの構成と管理を扱うリモコンとして機能する。

 技術的には、KubernetesはGoogleのクラウドと結び付いていない。ベアメタル、ハイパーバイザー、パブリッククラウドまで、さまざまなインフラプロバイダーと連携するように調整することが可能だ。MicrosoftはKubernetesをMicrosoft Azure VMと統合した。VMwareは、KubernetesがvSphereとvCloud Airに対応するよう取り組んでいる。Red HatのOpenShiftは既にKubernetesと連携するようになっている。

 PaaSに精通している人もKubernetesに馴染めるだろう。




*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***






Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る