kolla是什么?
容器化部署openstack,简而言之就是openstack里面每个组件都是用docker封装好了,对应docker的一个image。
容器化好处是什么?
通过docker,降低openstack升级的难度,使升级对openstack影响最小,一旦升级失败,直接回滚旧的docker image,升级只需要三步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。对比过目前生产环境主流的部署方式,fuel、puppet、ROD, 我个人认为容器化部署将是未来的趋势。kolla底层通过ansoble去启动配置 已经封装好了的docker image。
缺点:
要熟悉kolla,不仅仅是要熟悉openstack那么简单了,还要熟悉docker、和ansiable。
环境
cpu:8核
内存:16G
根分区大小:100G
至少需要2个网络接口(一个管理口,一个外网口)
管理地址 192.168.122.77
haproxy vip:192.168.122.76
安装时注意审查软件版本,我这里是安装newton版对应的是koll 3 ,2月24日发布的ocata版对应的是kolla 4
搭建docker本地镜像库
安装epel源和python-pip
安装docker
curl -sSL https://get.docker.io | bash
查看docker版本,确认docker是否安装成功。
修改docker参数,如果没有修改的话,会造成部署 neutron-dhcp-agent container 和访问APIError/HTTPError
mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/koll.conf
1 | [Service] |
保存退出
修改/etc/sysconfig/docker参数并添加下面一行,目的是为了配置本地镜像仓库。other_args="--insecure-registry 192.168.122.77:4000"
重启docker进程
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
制做docker本地镜像仓库
链接:http://pan.baidu.com/s/1gf5LTV9 密码:aysu
下载解压
将已经build好的openstack镜像解压到本地
tar -xvf kolla-image-newton-latest.tgz
加载下载好的docker registry,docker搭建私有镜像仓库使用registry这个软件
docker load < ./registry-server.tar
将镜像文件放到/home/下 docker run -d -p 4000:5000 --restart=always -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/tmp/registry -v /home/tmp/registry/:/tmp/registry --name registry registry:2
测试是否搭建本地镜像仓库成功
curl -XGET http://127.0.0.1:4000/v2/_catalog #正常情况会输出很多image name。
仓库里面存在的镜像
查看该镜像的tagcurl -XGET http://127.0.0.1:4000/v2/kolla/centos-binary-nova-compute/tags/list
3.0.3是版本号
查看仓库数据
安装ansible
yum install ansible
clone newton分支git clone -b stable/newton https://github.com/openstack/kolla
cd kolla
cp -r etc/kolla /etc/
安装kolla
pip install kolla
vim /etc/kolla/globals.yml
1 | openstack_release: "3.0.3" #上面搭建的本地仓库里面curl出来的tag号,写错了的话会导致找不到image。 |
生成密码文件
kolla-genpwd
路径
/etc/kolla/password.yml
执行部署
cd /root/kolla/tools/
./kolla-ansible deploy -i /root/kolla/ansible/inventory/all-in-one
这里需要注意的是,我是部署all-in-one,如果需要部署多节点的用multinode 修改一下里面的hostname
部署完成查看容器
pip install python-openstackclient
pip install python-neutronclient
输入以下命令生成一个环境变量文件
kolla-ansible post-deploy
文件路径为
/etc/kolla/admin-openrc.sh
cp /etc/kolla/admin-openrc.sh /root/
source /root/admin-openrc.sh
查看nova service
查看neutron agent
打开控制台访问
帐户admin,密码通过刚刚生成的admin-openrc.sh获取
执行
cd /usr/share/kolla
./init-runonce #一个测试脚本,自动下载镜像,上传,创建网络,创建路由器……
最后创建虚拟机
需要注意的是如果是在虚拟机中测试kolla需要在宿主机上修改nova-compute的配置文件 为virt_type=qemu不然默认用的是kvm,会造成创建云主机失败。
vim /etc/kolla/nova-compute/nova.conf
重启这个容器。
docker restart nova_compute
创建云主机测试
最后
Docker使用heka来展现收集到的日志信息。这些openstack容器的log都在heka 容器内展现
默认是没有安装cinder和其他一些软件的,如果需要安装在部署时可以修改/etc/kolla/globals.yml
参考链接
http://blog.csdn.net/u011211976/article/details/52085891
http://docs.openstack.org/developer/kolla-ansible/quickstart.html
http://geek.csdn.net/news/detail/60805?utm_source=tuicool&utm_medium=referral