コンテナ連携が進むOpenStack
今回のOpenStack Summit Tokyoレポートでは、OpenStackでもホットトピックであるコンテナを取り上げます。OpenStackにおけるコンテナ関連技術は、バンクーバーで5月に開催された前回のサミットで、GoogleのOpenStack Foundation参加やMagnumプロジェクトPTL(Project Technical Lead)のAdrian Otto氏の基調講演への登場などで大きな話題となりました。今回のサミットでも基調講演にてコンテナネットワーク管理機能が紹介されるなど、引き続き大きな注目を集めました。
本記事では、コンテナを扱うプロジェクトであるMagnumとKollaを中心に、一般講演やデザインサミットから見える最新動向を報告します。
Magnum: OpenStack上に、KubernetesやDocker Swarmを構築
Libertyリリースまでの取り組み
Magnum※1は、Container as a Serviceと呼ばれていますが、動作としてはOpenStackが管理するVMやベアメタルサーバー上にKubernetesやDocker SwarmなどのContainer Orchestration Engine(COE)をデプロイし、そのライフサイクルを管理しています。その意味では、Trove(Database as a Service)やSahara(Data Processing as a Service)などと似た位置付けのコンポーネントと言えます。Magnumがテナント上にデプロイしたKubernetesなどのクラスターはBayと呼ばれ、Libertyリリース時点では、MagnumはKubernetes、Docker Swarm、Mesosの3つのBayタイプをサポートしています。
※1 https://wiki.openstack.org/wiki/Magnum
リリースが2015年1月で、1年もたっていないプロジェクトですが、非常に速い速度で開発が進んでおり、最新のLibertyリリースでは、多数の機能拡張、改善が行われ、Production ready(商用利用可能)とアナウンスされています。
PTLによるMagnumに関する一般セッションでは、以下の4つが今回のリリースにおける重要な機能として、実装者と共に紹介されました※2。
- Container Orchestration Engineとして、Mesosに対応
- インストールされたKubernetesやSwarmクラスタに対するTLS Client Authをサポート
- Load balancerとの連携機能の強化
- Kubernetesのマルチマスタ構成への対応
ちなみに、次の開発サイクルのMitakaではMagnumのPTLの選挙が行われ、二人の候補が立候補しました。これら4つの機能のうち2つは、そのうちの敗れたPTL候補により実装された機能です。この一般セッションでは現PTLからこれら機能の紹介と共に実装した敗れた候補も紹介され、わだかまりなどがないことが示されました。ちなみに本記事執筆者の一人である大塚も、TLSサポートの実装者として紹介され、現PTLの気配りに感心しました。このあたりからも、開発コミュニティは人のつながりで成り立っていることがうかがえます。
Mitakaリリース以降の展望
LibertyリリースでProduction readyとアナウンスされたMagnumですが、Mitakaリリース以降では、コンテナプラットフォームとして有用な機能が順次追加開発されていきます。OCI(Open Container Initiative)※3やCNCF(Cloud Native Computing Foundation)※4といった団体も立ち上がり、コンテナのフォーマットやコンテナプラットフォームが提供すべき機能性の標準化が進んでいます。これらの標準で定義された機能性をOpenStackで実現できるように、各種機能の開発が行われていくことになるでしょう。
※3 https://www.opencontainers.org/
OpenStackをコンテナプラットフォームとして使うために重要な機能として、コンテナ間のネットワークの管理機能と、コンテナが利用するデータを格納するストレージの管理機能の、2つが、現在、開発コミュニティではホットなトピックとなっています。コンテナ間のネットワーク管理機能は、Neutron前PTLのKyle Mestry氏の基調講演の中で、プロジェクトKuryr※5、6が紹介されるなど、注目を集めました。Kuryrは、flannelやlibnetworkといった既存の管理ソフトウェアを活用し、OpenStack上にデプロイされたコンテナ間や、既存のOpenStack上の仮想マシンとコンテナとの通信を実現するプロジェクトです(Neutronのレポートの中で詳しく触れます)。ストレージ管理については、CinderやIronicといったOpenStackの既存のプロジェクトと連携させる実装方法についての議論が行われました。
※5 https://github.com/openstack/kuryr
Design Summitでは、新機能の議論だけでなく、内部構造の改善や、Magnumをより使いやすく品質の良い物にする視点での議論も行われ、今後も活発な開発が期待されます。
Kolla: AnsibleとDockerによってOpenStack環境構築を効率化
Kolla※7は、OpenStack基盤自体のデプロイをコンテナを使って行う、OpenStackインストーラ開発プロジェクトです。今回はKollaがOpenStack Big TentのもとでOpenStack公式プロジェクトに入って初めてのOpenStack Summitであり、Kollaのセッション※8には大勢の聴講者が集まりました。
システム基盤をコンテナを使ってデプロイすることで、事前検証済みのシステムの効率化、アップグレードの高速化、切り戻しが容易といったメリットが期待できます。アプリケーションの世界では、システムを機能ごとに個別のプログラムに分解し相互連携させるマイクロサービスアーキテクチャは一般的で、コンテナとの親和性が高く、コンテナが積極的に利用されていますが、OpenStackもNovaやSwift等の多数のプロセスから構成されており、コンテナを使ったデプロイは自然な発想と言えます。
OpenStackのデプロイ、アップグレードをいかに効率よく迅速に行うかはOpenStackコミュニティでも大きなテーマとなっており、Kollaが一石を投じる可能性も十分にあると思います。
※7 https://wiki.openstack.org/wiki/Kolla
セッションでは、実際にKollaを使ってOpenStack環境を構築するデモを行いました。設定ファイルのコピーと環境に合わせた設定を実施したのち、環境構築コマンドを実行すると、AnsibleによるDockerコンテナの作成とコンテナのデプロイが自動的に行われる様子を示しました。
その他のコンテナ関連技術動向
今回のOpenStack Summitでは、MagnumやKolla以外にも、コンテナ技術関連のセッションが多数ありました。
HuaweiとIBMのチームの講演※9では、OpenStack上でのクラスタリングを管理するSenlinプロジェクト※10とMagnumが連携して、コンテナを稼働させるプラットフォームのスケールアウトやコンテナのスケールアウトを行い、効果的なAuto Scalingを実現するデモが紹介されました。
※10 https://wiki.openstack.org/wiki/Senlin
別の講演※11では、コンテナの監視方法が取り上げられ、コンテナ運用時に監視すべき項目が紹介されました。監視を実現するためのアーキテクチャの説明や、実際に監視している様子のデモが行われました。
いずれのセッションでも、実際にデモができるレベルまでソフトウェアが組み上がっていており、これからコミュニティに公開され、メインライン開発の一部として組み込まれていくことが期待されます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Neutron最新動向: 活発なサブプロジェクトに注目
- OpenStack Summit Tokyoキーノート2日目、今年最も活発だったプロジェクトとは?
- OpenStack Magnumとコンテナ
- 「OpenStack Summit May 2015 Vancouver」レポート #3(2日目)
- OpenStackとコンテナの技術動向
- 「OpenStack Summit May 2015 Vancouver」レポート #4(デザインサミットセッション)
- Dockerコンテナのオーケストレーション機能を実現するOpenStack Magnumを触ってみた
- Congress最新動向:OpenStackでセキュリティやコンプライアンスを守る仕組みとは?
- OpenStackの新バージョン「Liberty」を発表・ダウンロード開始、ミラクル・リナックスが「松江ラボ」を開設、ほか
- Swift最新動向:Go言語実装と暗号化が導入間近。File Systemインテグレーションがキーに!