コンテナ連携が進むOpenStack

2015年11月16日(月)
大塚 元央梶波 崇元木 顕弘吉山 晃

今回の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(商用利用可能)とアナウンスされています。

MagnumのLibertyまでの開発速度の情報。非常に活発に開発が進んでいる

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の気配りに感心しました。このあたりからも、開発コミュニティは人のつながりで成り立っていることがうかがえます。

※2 https://www.openstack.org/summit/tokyo-2015/videos/presentation/openstack-magnum-containers-as-a-service

Mitakaリリース以降の展望

LibertyリリースでProduction readyとアナウンスされたMagnumですが、Mitakaリリース以降では、コンテナプラットフォームとして有用な機能が順次追加開発されていきます。OCI(Open Container Initiative)※3やCNCF(Cloud Native Computing Foundation)※4といった団体も立ち上がり、コンテナのフォーマットやコンテナプラットフォームが提供すべき機能性の標準化が進んでいます。これらの標準で定義された機能性をOpenStackで実現できるように、各種機能の開発が行われていくことになるでしょう。

※3 https://www.opencontainers.org/

※4 https://cncf.io/

OpenStackをコンテナプラットフォームとして使うために重要な機能として、コンテナ間のネットワークの管理機能と、コンテナが利用するデータを格納するストレージの管理機能の、2つが、現在、開発コミュニティではホットなトピックとなっています。コンテナ間のネットワーク管理機能は、Neutron前PTLのKyle Mestry氏の基調講演の中で、プロジェクトKuryr※5、6が紹介されるなど、注目を集めました。Kuryrは、flannelやlibnetworkといった既存の管理ソフトウェアを活用し、OpenStack上にデプロイされたコンテナ間や、既存のOpenStack上の仮想マシンとコンテナとの通信を実現するプロジェクトです(Neutronのレポートの中で詳しく触れます)。ストレージ管理については、CinderやIronicといったOpenStackの既存のプロジェクトと連携させる実装方法についての議論が行われました。

※5 https://github.com/openstack/kuryr

※6 https://www.openstack.org/summit/tokyo-2015/videos/presentation/kuryr-docker-networking-in-an-openstack-world

Design Summitでは、新機能の議論だけでなく、内部構造の改善や、Magnumをより使いやすく品質の良い物にする視点での議論も行われ、今後も活発な開発が期待されます。

基調講演でアナウンスされた新プロジェクトKuryr
KuryrはコンテナやVMの間のネットワークを管理する

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

※8 https://www.openstack.org/summit/tokyo-2015/videos/presentation/kolla-ansible-deployment-openstack-in-docker-containers-operator-bliss

Kollaの説明

セッションでは、実際にKollaを使ってOpenStack環境を構築するデモを行いました。設定ファイルのコピーと環境に合わせた設定を実施したのち、環境構築コマンドを実行すると、AnsibleによるDockerコンテナの作成とコンテナのデプロイが自動的に行われる様子を示しました。

3ノード上にコンテナを配置している様子

その他のコンテナ関連技術動向

今回のOpenStack Summitでは、MagnumやKolla以外にも、コンテナ技術関連のセッションが多数ありました。

HuaweiとIBMのチームの講演※9では、OpenStack上でのクラスタリングを管理するSenlinプロジェクト※10とMagnumが連携して、コンテナを稼働させるプラットフォームのスケールアウトやコンテナのスケールアウトを行い、効果的なAuto Scalingを実現するデモが紹介されました。

※9 https://www.openstack.org/summit/tokyo-2015/videos/presentation/exploring-magnum-and-senlin-integration-for-autoscaling-containers

※10 https://wiki.openstack.org/wiki/Senlin

MagnumとSenlinを連携させたAuto Scalingアーキテクチャ

別の講演※11では、コンテナの監視方法が取り上げられ、コンテナ運用時に監視すべき項目が紹介されました。監視を実現するためのアーキテクチャの説明や、実際に監視している様子のデモが行われました。

※11 https://www.openstack.org/summit/tokyo-2015/videos/presentation/monitoring-docker-container-and-dockerized-applications

いずれのセッションでも、実際にデモができるレベルまでソフトウェアが組み上がっていており、これからコミュニティに公開され、メインライン開発の一部として組み込まれていくことが期待されます。

NECソリューションイノベータ株式会社
Magnumプロジェクトの初期から開発に携わっている。去年の大晦日のIRC ミーティングにより、正式にOpenStack Magnumコア開発者となった。得意な言語はRuby。Python に関してはあまり知識がないため、いろいろと苦戦中。
株式会社NTTデータ

2012年よりOpenStack「Swift」やSheepdogを用いたプライベート・クラウド・ストレージの構築に従事。OpenStack Summitには2013年秋の香港開催から連続して参加し、ATCとしてコミュニティに貢献している。近年では、IoT基盤の構築や、基盤運用の自動化などのプロジェクトに携わる。

NEC OSS推進センター

NEC OSS推進センター所属。OpenStack「Neutron」「Horizon」のコアデベロッパーとしてOpenStack開発に携わるとともに、クラウド案件の支援を行っている。ルーター、広域イーサーネット装置から迷惑メールアプライアンスに至るまで、さまざまな研究開発経験を持つ、FPGAからクラウドまで分かるエンジニア。プライベートではサイクリングを楽しみつつ、OpenStack/Linuxなどの翻訳を行っている。おいしいビールはコーディングのよき相棒。

NEC OSS推進センター
NEC OSS推進センター所属。OpenStackには初期から関わり、技術検証などに従事。日本OpenStackユーザー会で勉強会を企画するなど、コミュニティ活動にも積極的に関与。その功績から2013年にOpenStack Foundationが認定するOpenStack Ambassadorとしてグローバルに活動中。

連載バックナンバー

クラウドイベント

Neutron最新動向 : 活発なサブプロジェクトに注目

2015/12/25
OpenStackの各プロジェクトについて紹介をしてきましたが、最後はNeutronです。
クラウドイベント

Nova最新動向:スコープを広げず安定性と機能性を追求

2015/12/16
Novaのプロジェクトがどう運営されていくかはOpenStack全体にとって重要なポイントであり続けると思います。

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

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

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

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