OpenStack里使用Nova Docker Driver需要注意的细节
2015-12-03 08:43
766 查看
OpenStack官网有一篇如何配置docker的文章,大体上是对的,但是忽略了很多细节。如果完全按照文档来配置,会发现遇到各种问题。本文将会晚上这些细节,并对需要引起特别注意的地方用红色字体显示。
1. 首先安装配置一个标准的两节点(controller和compute)的OpenStack,参考官方配置文档。
2. 在controller节点和compute节点上安装docker,具体安装过程参考如下链接。安装完成后启动docker服务。
http://docs.docker.io/en/latest/installation/
3. 在compute节点安装docker driver,需要提前安装git和python-pip,否则会报错:
4. 在compute节点配置/etc/nova/nova.conf,使用docker driver,并配置state_path=/var/lib/nova
注意,如果不配置state_path,会在创建instance的时候报错:"[Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/instances'\n",这是因为默认的state_path指向了/usr/lib/python2.7/site-packages/,如下面nova/paths.py代码所示:
5. 将/src/novadocker/etc/nova/rootwrap.d/docker.filters文件拷贝到/etc/nova/rootwrap.d/docker.filters,并修改rootwrap.d的访问权限,然后启动nova-compute服务
6. 在controller节点配置/etc/glance/glance-api.conf,如下:
注意:配置项需要在[image_format]条目下,而不是在[DEFAULT]条目下
7. 重新启动glance服务:
8. 获取docker image,并生成glance image:
注意:生成的glance image必须和docker image的名字一致,否则在创建instance的时候会报错:404 Client Error: Not Found ("No such image: xxxxx")
9. 最后就可以创建docker instance了
1. 首先安装配置一个标准的两节点(controller和compute)的OpenStack,参考官方配置文档。
2. 在controller节点和compute节点上安装docker,具体安装过程参考如下链接。安装完成后启动docker服务。
http://docs.docker.io/en/latest/installation/
3. 在compute节点安装docker driver,需要提前安装git和python-pip,否则会报错:
# usermod -aG docker nova # yum -y install git python-pip # pip install -e git+https://github.com/stackforge/nova-docker#egg=novadocker # cd src/novadocker/ # python setup.py install
4. 在compute节点配置/etc/nova/nova.conf,使用docker driver,并配置state_path=/var/lib/nova
[DEFAULT] compute_driver = novadocker.virt.docker.DockerDriver state_path=/var/lib/nova
注意,如果不配置state_path,会在创建instance的时候报错:"[Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/instances'\n",这是因为默认的state_path指向了/usr/lib/python2.7/site-packages/,如下面nova/paths.py代码所示:
path_opts = [ cfg.StrOpt('pybasedir', default=os.path.abspath(os.path.join(os.path.dirname(__file__), '../')), help='Directory where the nova python module is installed'), cfg.StrOpt('bindir', default=os.path.join(sys.prefix, 'local', 'bin'), help='Directory where nova binaries are installed'), cfg.StrOpt('state_path', default='$pybasedir', help="Top-level directory for maintaining nova's state"), ]
5. 将/src/novadocker/etc/nova/rootwrap.d/docker.filters文件拷贝到/etc/nova/rootwrap.d/docker.filters,并修改rootwrap.d的访问权限,然后启动nova-compute服务
# cp -R /src/novadocker/etc/nova/rootwrap.d /etc/nova/ # chown -R root:nova /etc/nova/rootwrap.d # systemctl restart openstack-nova-compute
6. 在controller节点配置/etc/glance/glance-api.conf,如下:
[image_format] container_formats = ami,ari,aki,bare,ovf,docker
注意:配置项需要在[image_format]条目下,而不是在[DEFAULT]条目下
7. 重新启动glance服务:
# openstack-sevice restart glance
8. 获取docker image,并生成glance image:
# docker search cirros NAME DESCRIPTION STARS OFFICIAL AUTOMATED cirros CirrOS is a Tiny OS that specializes in ru... 20 [OK] basivireddy/cirros CirrOS image for Docker-Compute 1 # docker pull cirros # docker save cirros | glance image-create --container-format=docker --disk-format=raw --name cirros
注意:生成的glance image必须和docker image的名字一致,否则在创建instance的时候会报错:404 Client Error: Not Found ("No such image: xxxxx")
9. 最后就可以创建docker instance了
# nova boot --image cirros --flavor m1.tiny --nic net-id=59cc6a1d-0cc1-44c7-8b0a-9dc071fde397 docker-vm1 # nova list +--------------------------------------+------------+--------+------------+-------------+-------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------------+--------+------------+-------------+-------------------+ | 318d366c-8f14-4723-8b24-2d6bf5ca0cbc | docker-vm1 | ACTIVE | - | Running | private=10.0.0.22 | +--------------------------------------+------------+--------+------------+-------------+-------------------+
相关文章推荐
- Docker命令行探秘
- docker的使用
- 使用Docker快速部署Storm环境
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)
- Docker搭建便捷的开发者环境
- 如何构建Memcached Docker容器
- Docker 监控- Prometheus VS Cloud Insight
- Docker 监控- Prometheus VS Cloud Insight
- 分布式应用中网络故障和分区的docker测试框架Blockade
- Docker Swarm系统结构图
- Docker初级学习-安装Docker
- Docker中级学习-Docker Registry
- 在windows下的安装Docker的教程
- Docker 2 -- 关于Dockerfile
- Calico在Docker中的搭建
- 几种 Docker 监控工具对比
- 几种 Docker 监控工具对比
- (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
- docker registry部署(容器化运行,ssl证书生成,nginx配置)
- Docker初级学习