|
Docker公式サイトの最近の記事で、DockerがOpenStack IcehouseからHeatと統合される予定であることが報じられました。Dockerは、OpenStack Havanaの初期リリースでNovaドライバーとして既にOpenStackに統合されていました。この記事では、まずDockerについて簡単に紹介し、その後OpenStackとの統合について説明します。 Docker入門 ドックは次の用途に使用できます。
Dockerは急速に発展しています。そのコントリビューターであるPaaSクラウドプロバイダーのhttps://dotcloud.comは、2014年1月にシリーズBで1,500万ドルの資金調達を実施しました。Dockerコミュニティも非常に活発で、Docker Chineseコミュニティは最近、中国各地の複数の都市でDockerミートアップを開催し、成功を収めました。Dockerに関する詳細は、http://www.openstack.cn/p828.htmlをご覧ください。 DockerとNovaの統合 OpenStack Havanaリリースでは、DockerはNova内のドライバーとしてOpenStackに統合され、Dockerコンテナを仮想マシンとして扱います。コードはhttps://github.com/openstack/nova/tree/stable/havana/nova/virt/dockerで入手できます。 しかし、香港で開催されたOpenStack Design Summitにおいて、DockerドライバーをNovaプロジェクトからStackForgeプロジェクトに移管し、開発を行うことが決定されました。各OpenStackプロジェクトは、まずStackForgeで開発を進め、その後、Incubatedプログラムへの参加を申請し、試用期間と技術委員会による投票を経て、正式にOpenStack統合プロジェクトとなります。OpenStackプロジェクトにおけるDockerドライバーのメインメンテナーは、「このドライバーについては肯定的なフィードバックをいただいています。CinderとNeutronとの統合が不十分だったことが、私たちが直面した課題でした。StackForgeを利用することで、迅速なイテレーション、新機能の継続的な統合、そしてOpenStack Junoリリースへの再導入が可能になります」と説明しています。そのため、Icehouseリリース以降のDockerドライバーのコードツリーはhttps://github.com/stackforge/nova-dockerとなります。 以下は、OpenStack と Nova Docker ドライバーの統合プロセスのフローチャートです。 Nova Docker ドライバーNova Dockerドライバーには、Dockerの内部REST APIと通信するための小さなHTTPクライアントが組み込まれており、HTTP APIを使用してDockerコンテナを制御し、コンテナ情報を取得します。Glanceを設定することで、DockerはGlanceからイメージを取得・アップロードできるようになります。DockerとNovaの統合に関する詳細な設定手順については、https://wiki.openstack.org/wiki/Dockerをご覧ください。 DockerとHeatの統合 OpenStackコミュニティでは、DockerをNovaのハイパーバイザーとして使用するよりも、Heatを使用してDockerの利用を調整することを好んでいます。NovaのDockerドライバのアプローチにはいくつかの欠点があります。例えば、標準API拡張は、Dockerには適用できない仮想マシン固有の機能を使用しています。さらに、Dockerを仮想マシンとして扱うことで、Novaはコンテナ接続(主にコンテナ間通信)といったDockerの便利な機能を活用することが難しくなります。これらの理由から、Heatの方がより適切な選択肢です。 HeatはOpenStack内でリソースオーケストレーション機能を提供し、AWS CloudFormationと互換性があり、ユーザーはリソースを記述したテンプレートをアップロードできます。Heatのプラグインメカニズムを使用することで、ユーザーは従来のOpenStackのデプロイメント手法に基づいてDockerコンテナをデプロイおよび管理できます。HeatプラグインはOpenStackコミュニティに受け入れられており、Icehouseリリースに含まれる予定です。コードはhttps://github.com/openstack/heat/tree/master/contrib/dockerで入手できます。 次の例は、Heat を使用して Docker の使用を調整する方法を示しています。 Heat Dockerプラグイン 上記の例では、「my_docker_container」のようなフラグメントを追加するだけで複数のコンテナを作成し、それらを相互に接続できます。OpenStack APIによる制限を受けず、Docker Remote APIを最大限に活用できます。 結論 Dockerは仮想マシンと比較してリソース利用率が高く、数秒でのデプロイとクロスプラットフォームなアプリケーションのパッケージングとデプロイを可能にします。数多くのPaaSプラットフォーム製品の中でも急速な成長を遂げ、コミュニティの認知度と支持を獲得し、複数の著名なプロジェクトとの統合を実現しています。Heatプロジェクトとの統合は、IaaSプラットフォームとPaaSプラットフォームを繋ぐ優れた手段となります。OpenStack Junoリリースにおいて、DockerとOpenStack Heatプロジェクトの統合がさらに進むことを期待しています。 著者: @Guo Changbo、EasyStack エンジニア 出典: http://www.openstack.cn/p1423.html この記事のアドレス: http://linux.cn/article-2909-1.html |