注目すべきDockerの周辺技術 PanamaxとKubernetes

2015年1月26日(月)
佐藤 司森元 敏雄

Kubernetes

開発元Google
公式サイトhttps://github.com/GoogleCloudPlatform/kubernetes
ライセンスApache License 2.0
提供開始2014/06/10
最新バージョン0.4.3

Kubernetesは、現在もっとも注目されているDockerの周辺技術だろう。開発はGoogleが主導となっており、Microsoft、Red Hat、Docker、CoreOS、Saltstack、Mesosphere、IBM等の有名企業がこぞって開発に参加している。Kubernetesは全ての環境上(「全て」が何を指すかは、まだ発表がない)で動くことを目標としているDockerコンテナのオーケストレーションツールだ。GCP上での利用であれば、とても短い作業ステップで利用を開始出来るが、自前で環境を構築する場合は若干導入難度が高くなる。もっともこの点は、これから洗練されていくことだろう。

メリット

Kubernetesの最大のメリットと言えば、複数ホストでのDockerの利用が容易になる点だろう。Docker単体では、複数ホストにまたがったコンテナ間での管理をしようとすると複雑になりやすいが、Kubernetesならば一括で管理できる。

デメリット

一方デメリットとしては、利用難度が高い点が挙げられる。後述するがKubernetesには独自の概念があり、それらを理解しKubernetesとDocker双方のコマンドに精通している必要がある。

Kubernetes独自の「用語」

Kubernetesには、独自の用語(概念)があるので、これらのイメージを把握しておこう。

Pod

複数コンテナの集まりを、Podという単位で扱う、Pod内のコンテナは、同一ホスト上にデプロイされる。

Label

LabelはPodに任意の名前をつける機能で、Podに対するホスト名のようなものである。Labelは、1つのPodに対して複数付与することも可能である。

Minion

複数のPodの集まりを、Minionという単位で扱う。

Replica

Podの複製を作る仕組みのこと。この機能を応用することで、Pod単位でのオートスケールや障害時のPodの復旧といった使い方が考えられる。

Service

L3プロキシのようなネットワークを司る役割を持つ。設定したPodに対して、ラウンドロビンでのアクセス分配が可能である。

Kubernetesの機能

現状のKubernetesが備える機能については、DesignOverviewの記載が一次情報となる。現在できることは、以下の通りだ。

  • 複数のコンテナをPodという単位で管理できる。ただしPodで管理するコンテナ群は、同一ホスト上である必要がある
  • Podに対してLabelを付与し(複数可)、付与したLabelでPodを参照出来る
  • PodはReplica機能を使って、手動で複製が可能である
  • 複数のPodをMinionという単位で管理できる。MinionはホストをまたいだPod群をまとめることが出来る
  • Serviceというネットワーク管理ツールによって、PodやMinionをどのネットワークへ接続させるかを管理する

これらの機能を組み合わせることによって、Kubernetesを用いたコンテナシステムのクラスタリングが可能となる(図5)。

Kubernetesによるクラスタリングのイメージ

図5:Kubernetesによるクラスタリングのイメージ(クリックで拡大)

現在の主な機能は上述の通りだが、この後も様々な機能が追加されることだろう。今後についてはKubernetesのロードマップを参照してほしい。

Kubernetesの評価

これからの発展に期待が持てるKubernetesだが、今の時点では足りない機能や設定が複雑な部分も多々あると感じられた。たとえばPodの手動複製は可能だが、Replication機能を使って自動でスケールアウトやフェイルオーバーまで考えるとKubernetesだけで全てを実現するのは難しいだろうと考えられる。

しかしGoogleは、Google App Engine(GAE)のように背後でコンテナ技術を使っていると想像されるサービスも提供している。もしKubernetesを使うことによって、GAEのようにセキュアでマルチテナンシーが確立されたコンテナ環境が実現出来るとしたら、Dockerコンテナの普及は爆発的に進むことが予想される。

Docker関連ツールの今後

Dockerをより良くするツールとして、基盤となるCoreOS、オーケストレーションであるKubernetes、そして視認性・操作性を向上させるPanamaxを中心に、2回にわたって紹介した。記事の冒頭に掲載した表でもわかるように、Dockerの周辺技術は紹介しきれないほど増えてきている。

GUI管理ツールだけ見ても、ShipYardやDockerUI、そして今回ご紹介したPanamax等が挙げられるが、それぞれUIの構成や実現出来ることに違いがあるので、それぞれ用途にあったツールを選択してほしい。なかでも、詳細説明を行ったCoreOS、Panamax、Kubernetesの3製品は、利便性も高く推奨できる。

次回は、Dockerを注視している各企業の動向とこれからについて説明したい。

株式会社アーベルソフト

インフラ基盤の設計・構築・運用までの全ての工程を担当。最近は、OSS製品を活用したインフラ基盤の提供を行っている。利用するOSS製品の調査・研究も行っており、現在は、DockerとTerraformに注目している。
>株式会社アーベルソフト

TIS株式会社

R&D部門である戦略技術センター所属。
金融系の大規模システム開発やプライベートクラウド開発環境の構築・運用の経験を生かし、OSS製品を中心としたの技術調査・検証を担当。
> TIS株式会社

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています