注目すべきDockerの周辺技術 PanamaxとKubernetes
Kubernetes
開発元 | |
---|---|
公式サイト | 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のロードマップを参照してほしい。
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を注視している各企業の動向とこれからについて説明したい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Dockerをより良く使うための3つの周辺技術
- KubernetesのマニフェストをMagnumで実行する
- Dockerの管理・監視ツール(1)
- OpenStack Magnumとコンテナ
- Dockerの管理・監視ツール(2)
- Dockerコンテナのオーケストレーション機能を実現するOpenStack Magnumを触ってみた
- 「OpenStack Paris Summit 2014」技術セッション聴講レポート
- Oracle Cloud Hangout Cafe Season 4 #2「Kubernetesのネットワーク」(2021年5月12日開催)
- Kubernetes環境の選択肢
- OpenStack、Docker、Hadoop、SDN、.NET…、2014年のOSS動向をまとめて振り返る