はじめに
OpenStack を使えば AWS のようなインフラがオンプレミスでも簡単に利用できます。しかしながら、OpenStackクラスタ 自体について継続的にCI/CDを回すのはとても難しく、ある程度以上の規模になると運用上のボトルネックになることが課題となっております。
この課題を解決するためには、デリバリプロセス自体を Microservice に対応したもの(Kubernetes)に置き換えれば良いのではないか..ということで、2016年初頭あたりから、OpenStack on Kubernetes の PoC (Proof of Concept)の構築が様々な組織で進んでおります。
本文書では、各地で取り組まれている OpenStack on Kubernetes について、一部でもコードにアクセスできそうなものを中心にまとめました。基本的には私の備忘録でございますが、ご興味のある人は足掛かり情報としてご参照いただけますと幸いです。
Containerized Control Plane on Kubernetes (CCP)
2016年8月に、Mirantis / Intel / Google 3社の連名で、OpenStack on Kubernetes に取り組むとの発表がありました。
-
Mirantis blog
本プロジェクトは後発となりますが、Mirantis は OpenStack の主要ディストリビュータであり、Google は Kubernetes の Initial Contributor であるため、今後急速にユーザの支持を集める可能性を秘めています。
ただし、現時点では実装は公開されておらず、また Compute ノードについてはスコープ外の模様です。
ドキュメントを読む限りでは、Fuel を用いて Undercloud (ベアメタルサーバ) に Kubernetes をデプロイするように見受けられます。
tcp cloud
tcp clooud では OpenStack のデプロイに SaltStack を用いており、SaltStack の Kubernetes 対応を進めている模様です。
- Making OpenStack Production Ready with Kubernetes and OpenStack-Salt - Part 1
- Making OpenStack Production Ready with Kubernetes and OpenStack-Salt - Part 2
- Making OpenStack Production Ready with Kubernetes and OpenStack-Salt - Part 3
上記ドキュメントは OpenStack on Kubernetes を大規模に展開する際には必須な課題(Scalability, Availabilityなど)について解決案が提示されており、大いに参考になりました。特に、Undercloud: Kubernetes with Calico, Overcloud: OpenStack with OpenContrail の組み合わせは、現時点で考えられる最も Scalability / Availability の高いアーキテクチャの可能性が高いです。
なお、Undercloud のデプロイについては、MAAS の利用が想定されている模様です(特にアーキテクチャ的には連携はないはず?)。
Kolla-kubernetes
OpenStackクラスタの Docker へのデプロイについては、従来から Kolla というプロジェクトにて実現されておりました。主な用途としては CI や開発環境に Kolla が用いられていると考えられますが、こちらの Kolla image をベースにする形で、Kubernetes への対応プロジェクトとして Kolla-kubernetes の開発が進んでおります。
なお、Undercloud のデプロイについては、特に規定はないので MAAS や Triple-O 等を組み合わせて使えそうです。
Overcloud のデプロイについては、ansibleを用いたテンプレートエンジンや Kubernetes操作にて実現されます。
sapcc openstack-kube
SAP でも、OpenStack on Kubernetes について PoC の開発が進んでいる模様です。
こちらも、テンプレートエンジンにて Kubernetes のコンフィグを生成する模様です。
openstack-kube github repository
Stackanetes
OpenStack on Kubernetes の火付け役となったプロジェクトが、CoreOS社が発表した Stackanetes であると記憶しております。
現在の開発状況については把握しておりませんが、github 上にコードは公開されており、開発は進捗している模様です。
まとめ
あまりに沢山のプロジェクトが並行して進んでいるので、ウォッチするだけでも大変そうです。今後はプロジェクトの淘汰が進むかもしれませんが、それぞれの良いアイデアが共有されていくと嬉しいですね。