a reseach of openstack + docker at recent code
DESCRIPTION
TRANSCRIPT
openstackOpen source software to build public and private clouds.
OpenStack Docker 対応の調査@Icehouse
2014.8.13NTT データ先端技術株式会社
志田 隆弘
モチベーション• 私の OpenStack 環境
– 手元のVAIO(Windows)でVMware Playerを動かす– その上にUbuntuを入れて、OpenStackを構築
• 勿論 All In One
– それでCentOSとかを起動してみたり• cloud-init で Chef-solo 動かすとかしたら当たり前に20分かかりました
• コンテナ型を利用したらもっとスムーズになるんじゃないか?– 今からLXCより「Docker使ってますけど何か?」って言えたほうが
カッコイイんじゃないか?– そういえばOpenStackでDocker操作する話があったような
• うろ覚え
英語の記事はちょいちょい見かけるけど、日本語の情報は少ないなと思いまして &Havana の話はあるけど Icehouse での話が見当たらなかったので、お試しで Docker 対応を動かしてみよう
First Step
• まずは公式から• https://wiki.openstack.org/wiki/Docker
DevStack で構築できるだと!! 勝った!
早速失敗
1. localrc に以下を記述
2. socat を入れておくといいらしいので入れる
3. docker のインストール
VIRT_DRIVER=docker
sudo apt-get install socat
$ ./tools/docker/install_docker.sh-bash: ./tools/docker/install_docker.sh: そのようなファイルやディレクトリはありません
いつものように、 OS インストール後 devstack を clone した後
!?
Docker@Icehousehttp://blog.docker.com/2014/03/docker-will-be-in-openstack-icehouse/
Docker が OpenStack Icehouse に入るよ
でも Nova の機能は VM 特有で Docker とかコンテナに合わないなって思ってる
これまでは Nova の Driver として作ってたんだ
どうしようかなと思ってたけど、 Heat を使うという解決方法を思いついたよ
Icehouse では Heat のプラグインという形でリリースされるよ
Driver のコードは Nova から Stackforge に移動するよ。そこで開発は続けるよ。
… うーん、なるほど。半年前にこんなことが決まっていたのか
nova-docker
• Havana 時点での” Docker 対応”– https://github.com/stackforge/nova-docker
• Nova の Docker VirtDriver– インストール方法も README に
記載有り– 最終更新は 9 日前
• 結構アクティブ?
• Icehouse でも動く可能性高
インストール手順
• devstack でやっていた部分を手動で– Docker をインストール
• https://docs.docker.com/installation/ubuntulinux/
– nova-docker をインストール• pip install -e git+https://github.com/stackforge/nova-docker#egg
=novadocker
– nova-compute 起動ユーザに docker グループをつける• gpasswd -a < 起動ユーザ > docker
– nova.conf を修正• compute_driver=novadocker.virt.docker.DockerDriver
– glance-api.conf を修正• container_formats = ami,ari,aki,bare,ovf,docker
ハマった問題• http://www.gossamer-threads.com/lists/openstack/dev/40195
– nova-compute failed to start with docker hypervisor.• nova.openstack.common.threadgroup
NovaException: Docker daemon is not running or is not reachable (check the rights on /var/run/docker.sock)
• 自分もこんなエラーが出たので何度も docker –d が上がってるか? /var/run/docker.sock に書き込み権限あるのかを見直しましたが、治らず– 原因はバージョンの問題でした
$ docker versionClient version: 0.9.1Go version (client): go1.2.1Git commit (client): 3600720Server version: 0.9.1Git commit (server): 3600720Go version (server): go1.2.1Last stable version: 1.1.2, please update docker
class DockerHTTPClient(object): VERSION = 'v1.13'
def __init__(self, connection=None): self._connection = connection
nova-docker は docker のバージョンが 1.13 であると決め打ちして叩きに行くけど、 Ubuntu14.04でインストールされる docker が 0.9.1 というバージョン不整合の問題。
docker は最新版を入れましょう
nova-docker@master
github の master(8/11 時点 ) のコードでもどうにか動いている模様… 起動するかは不明
総評
• 今回はここまでです– この後実際にコンテナ起動して…とかありますが– Docker としては nova-docker にあまり力を入れ
ていない模様• Cinder や Neutron とは繋がらないですし
– そもそも、パフォーマンスの問題であればNested KVM がいいんじゃないか?
• 今後、 nova-docker をちゃんと使うタイミングは無さそうです– 素 Docker の方が便利