设为首页 收藏本站
查看: 941|回复: 0

[经验分享] OpenStack Kolla之部署

[复制链接]

尚未签到

发表于 2017-6-26 15:09:28 | 显示全部楼层 |阅读模式
  ---恢复内容开始---
  原文: http://geek.csdn.net/news/detail/60805
  kolla项目起源于TripleO项目,聚焦于使用Docker容器部署OpenStack服务。该项目由Cisco于2014年9月提出,是OpenStack 社区Big Tent开发模式下的孵化项目。本文是接着上一篇 《OpenStack Kolla探秘》 ,我们继续进行下一步探秘。

一.Kolla简介
  OpenStack Kolla项目是一个支持Openstack服务以容器的方式部署,借助ansible部署工具可以简单的扩展到多个节点。同时,又借助于使用 heat 来编排 Kolla 集群。
  同时,我们也可以把 Kolla 镜像注册到一个内部的 Hub,并通过 Kubernetes(k8s)等工具来管理。
  目前,Kolla提供的镜像支持部署如下OpenStack项目:


  • Aodh
  • Ceilometer
  • Cinder
  • Designate
  • Glance
  • Gnocchi
  • Heat
  • Horizon
  • Ironic
  • Keystone
  • Magnum
  • Mistral
  • Murano
  • Nova
  • Neutron
  • Swift
  • Tempest
  • Zaqar
  以及这些基础设施组件:


  · Ceph implementation for Cinder, Glance and Nova
  · Openvswitch and Linuxbridge backends for Neutron
  · MongoDB as a database backend for Ceilometer and Gnocchi
  · RabbitMQ as a messaging backend for communication between services.
  · HAProxy and Keepalived for high availability of services and their endpoints.
  · MariaDB and Galera for highly available MySQL databases
  体验Kolla项目的第一步是搭建一个简单的开发环境,搭建all-in-one环境参考官方的doc如下:
  http://docs.openstack.org/developer/kolla/quickstart.html

二.Kolla部署

1.部署kolla的方式不限以下几种


  • 裸机部署
  • 使用heat
  • 使用vagrant
  这里,我们直接在OS上部署 Kolla 里面的docker镜像来搭建一个OpenStack开发测试环境,按照官网文档的系统配置如下(我使用的是一台虚拟机):


  • 2 (or more) network interfaces
  • At least 8gb main memory
  • At least 40gb disk space
  2.安装备注:最好,请在科学上网的环境下进行如下操作,你懂的。
  安装epel源

# yum install -y epel-release  


  安装pip

# yum install -y python-pip


  下载kolla源码

# git clone https://git.openstack.org/openstack/kolla  
  安装kolla

# pip install kolla/   
pip 安装kolla失败,修改pip源,详见  http://www.chenshake.com/openstack-project-series-2-kolla/
或先安装相关依赖包,如下。我就是这样解决的。

  安装相关依赖包

# yum install -y python-devel libffi-devel openssl-devel gcc


  安装ansible,版本不要超过2.0.0

# pip install -U ansible==1.9.4  
  安装docker

# curl -sSL https://get.docker.io | bash  

curl: (52) Empty reply from server 出现这个问题。安装完其他的可以在尝试。
安装完docker后,需要启动: #service docker start   否则 kolla-build 会失败。
  安装tox

# pip install -U tox
  安装openstackclient

# pip install -U python-openstackclient
  生成kolla-build.conf

# tox -egenconfig  
  拷贝配置文件到/etc目录下

# cp -rv etc/kolla /etc/
  下面,开始构建docker image和ansible执行部署。构建docker images(时间会较长)

# kolla-build --base centos --type source
  Build 完成之后,查看所有已经 build 好的镜像。

# docker images
  修改全局配置文件

# vim /etc/kolla/globals.yml
kolla_install_type: "source"
kolla_internal_address: "10.10.10.213"
network_interface: "eth0"
neutron_external_interface: "eth1"
  一键安装

# kolla-ansible deploy   
  OpenStack部署成功后,在部署节点运行下面的命令创建一个openrc文件/etc/ kolla/admin-openrc.sh。或查看tools/openrc-example。

# kolla-ansible post-deploy
  之后,创建一个openrc文件,用于初始化一个glance image和neutron环境。

# source /etc/kolla/admin-openrc.sh
# kolla/tools/init-runonce
  如果是multinode,还需要依赖docker-registry。如何构建docker私有仓库,可以参考如下链接:
  http://docs.openstack.org/developer/kolla/quickstart.html http://dockerpool.com/static/books/docker_practice/repository/local_repo.html

三.Kolla使用

1.OpenStack Docker Images
  本地Build Image,因为远程的pull image 速度太慢 而且 Kolla 社区不是每个commit修改都把image build一遍,所以本地build image是开发最好的选择。推荐使用source方式build。


  Docker images:

https://hub.docker.com/u/kollaglue/  image building guide:

http://docs.openstack.org/developer/kolla/image-building.html  Docker Hub:

https://docs.docker.com/engine/userguide/containers/dockerimages/
2. 相关技巧


  • tools/cleanup-containers:可用于从系统中移除部署的容器
  • tools/cleanup-host:可用于移除由于残余网络变化引发的docker启动的neutron-agents主机
  • tools/cleanup-images:可用于从本地缓存中移除所有的docker image
  3.查询OpenStack docker image使用docker ps 可以查看对应openstack 所有服务的容器。当前Kolla项目在Kollaglue repo提供了以下服务的docker镜像。

# docker search kollaglue
NAME                                   DESCRIPTION   STARS     OFFICIAL   AUTOMATED
kollaglue/centos-rdo-keystone                        2                    
kollaglue/centos-rdo-base                            1                    
kollaglue/fedora-rdo-nova-compute                    0                    
kollaglue/fedora-rdo-nova-api                        0                    
kollaglue/centos-rdo-rabbitmq                        0                    
kollaglue/centos-rdo-horizon                         0                    
kollaglue/fedora-rdo-mariadb                         0                    
kollaglue/fedora-rdo-nova-network                    0                    
kollaglue/fedora-rdo-nova-conductor                  0                    
kollaglue/centos-rdo-nova-base                       0                    
kollaglue/fedora-rdo-base                            0                    
kollaglue/fedora-rdo-nova-scheduler                  0                    
kollaglue/centos-rdo-nova-network                    0                    
kollaglue/centos-rdo-nova-compute                    0                    
kollaglue/fedora-rdo-zaqar                           0                    
kollaglue/centos-rdo-mariadb-app                     0                    
kollaglue/fedora-rdo-glance-registry                 0                    
kollaglue/fedora-rdo-nova-base                       0                    
kollaglue/fedora-rdo-glance-api                      0                    
kollaglue/centos-rdo-glance-base                     0                    
kollaglue/fedora-rdo-nova-libvirt                    0                    
kollaglue/centos-rdo-neutron-base                    0                    
kollaglue/fedora-rdo-rabbitmq                        0                    
kollaglue/centos-rdo-nova-libvirt                    0                    
kollaglue/fedora-rdo-keystone                        0   
4.Kolla代码目录结构


  • ansible - Contains Ansible playbooks to deploy Kolla in Docker containers.
  • demos - Contains a few demos to use with Kolla.
  • dev/heat - Contains an OpenStack-Heat based development environment.
  • dev/vagrant - Contains a vagrant VirtualBox/Libvirt based development environment.
  • doc - Contains documentation.
  • etc - Contains a reference etc directory structure which requires configuration of a small number of configuration variables to achieve a working All-in-One (AIO) deployment.
  • docker - Contains jinja2 templates for the docker build system.
  • tools - Contains tools for interacting with Kolla.
  • specs - Contains the Kolla communities key arguments about architectural shifts in the code base.
  • tests - Contains functional testing tools.
  5. Debugging Kolla可以通过执行的部署目标来确定容器的状态:

# docker ps –a
  通过日志来进行检查:

# docker exec -it heka bash
  所有的容器都可以从这个目录中获取服务日志:/var/log/kolla/SERVICE_NAME。Docker使用heka来展现收集到的日志信息。
  如果需要输出日志,请运行:

# docker logs <container-name>
  请注意,大多数容器不会stdout,上面的命令将不会提供信息。


6.参考资源  Kolla wiKI: https://wiki.openstack.org/wiki/Kolla
  Docs: http://docs.openstack.org/developer/kolla/



  ---恢复内容结束---
  原文: http://geek.csdn.net/news/detail/60805
  kolla项目起源于TripleO项目,聚焦于使用Docker容器部署OpenStack服务。该项目由Cisco于2014年9月提出,是OpenStack 社区Big Tent开发模式下的孵化项目。本文是接着上一篇 《OpenStack Kolla探秘》 ,我们继续进行下一步探秘。

一.Kolla简介
  OpenStack Kolla项目是一个支持Openstack服务以容器的方式部署,借助ansible部署工具可以简单的扩展到多个节点。同时,又借助于使用 heat 来编排 Kolla 集群。
  同时,我们也可以把 Kolla 镜像注册到一个内部的 Hub,并通过 Kubernetes(k8s)等工具来管理。
  目前,Kolla提供的镜像支持部署如下OpenStack项目:


  • Aodh
  • Ceilometer
  • Cinder
  • Designate
  • Glance
  • Gnocchi
  • Heat
  • Horizon
  • Ironic
  • Keystone
  • Magnum
  • Mistral
  • Murano
  • Nova
  • Neutron
  • Swift
  • Tempest
  • Zaqar
  以及这些基础设施组件:


  · Ceph implementation for Cinder, Glance and Nova
  · Openvswitch and Linuxbridge backends for Neutron
  · MongoDB as a database backend for Ceilometer and Gnocchi
  · RabbitMQ as a messaging backend for communication between services.
  · HAProxy and Keepalived for high availability of services and their endpoints.
  · MariaDB and Galera for highly available MySQL databases
  体验Kolla项目的第一步是搭建一个简单的开发环境,搭建all-in-one环境参考官方的doc如下:
  http://docs.openstack.org/developer/kolla/quickstart.html

二.Kolla部署

1.部署kolla的方式不限以下几种


  • 裸机部署
  • 使用heat
  • 使用vagrant
  这里,我们直接在OS上部署 Kolla 里面的docker镜像来搭建一个OpenStack开发测试环境,按照官网文档的系统配置如下(我使用的是一台虚拟机):


  • 2 (or more) network interfaces
  • At least 8gb main memory
  • At least 40gb disk space
  2.安装备注:最好,请在科学上网的环境下进行如下操作,你懂的。
  安装epel源

# yum install -y epel-release  


  安装pip

# yum install -y python-pip


  下载kolla源码

# git clone https://git.openstack.org/openstack/kolla  
  安装kolla

# pip install kolla/   
pip 安装kolla失败,修改pip源,详见  http://www.chenshake.com/openstack-project-series-2-kolla/
或先安装相关依赖包,如下。我就是这样解决的。

  安装相关依赖包

# yum install -y python-devel libffi-devel openssl-devel gcc


  安装ansible,版本不要超过2.0.0

# pip install -U ansible==1.9.4  
  安装docker

# curl -sSL https://get.docker.io | bash  

curl: (52) Empty reply from server 出现这个问题

  安装tox

# pip install -U tox
  安装openstackclient

# pip install -U python-openstackclient
  生成kolla-build.conf

# tox -egenconfig  
  拷贝配置文件到/etc目录下

# cp -rv etc/kolla /etc/
  下面,开始构建docker image和ansible执行部署。构建docker images(时间会较长)

# kolla-build --base centos --type source
  Build 完成之后,查看所有已经 build 好的镜像。

# docker images
  修改全局配置文件

# vim /etc/kolla/globals.yml
kolla_install_type: "source"
kolla_internal_address: "10.10.10.213"
network_interface: "eth0"
neutron_external_interface: "eth1"
  一键安装

# kolla-ansible deploy   
  OpenStack部署成功后,在部署节点运行下面的命令创建一个openrc文件/etc/ kolla/admin-openrc.sh。或查看tools/openrc-example。

# kolla-ansible post-deploy
  之后,创建一个openrc文件,用于初始化一个glance image和neutron环境。

# source /etc/kolla/admin-openrc.sh
# kolla/tools/init-runonce
  如果是multinode,还需要依赖docker-registry。如何构建docker私有仓库,可以参考如下链接:
  http://docs.openstack.org/developer/kolla/quickstart.html http://dockerpool.com/static/books/docker_practice/repository/local_repo.html

三.Kolla使用

1.OpenStack Docker Images
  本地Build Image,因为远程的pull image 速度太慢 而且 Kolla 社区不是每个commit修改都把image build一遍,所以本地build image是开发最好的选择。推荐使用source方式build。


  Docker images:

https://hub.docker.com/u/kollaglue/  image building guide:

http://docs.openstack.org/developer/kolla/image-building.html  Docker Hub:

https://docs.docker.com/engine/userguide/containers/dockerimages/
2. 相关技巧


  • tools/cleanup-containers:可用于从系统中移除部署的容器
  • tools/cleanup-host:可用于移除由于残余网络变化引发的docker启动的neutron-agents主机
  • tools/cleanup-images:可用于从本地缓存中移除所有的docker image
  3.查询OpenStack docker image使用docker ps 可以查看对应openstack 所有服务的容器。当前Kolla项目在Kollaglue repo提供了以下服务的docker镜像。

# docker search kollaglue
NAME                                   DESCRIPTION   STARS     OFFICIAL   AUTOMATED
kollaglue/centos-rdo-keystone                        2                    
kollaglue/centos-rdo-base                            1                    
kollaglue/fedora-rdo-nova-compute                    0                    
kollaglue/fedora-rdo-nova-api                        0                    
kollaglue/centos-rdo-rabbitmq                        0                    
kollaglue/centos-rdo-horizon                         0                    
kollaglue/fedora-rdo-mariadb                         0                    
kollaglue/fedora-rdo-nova-network                    0                    
kollaglue/fedora-rdo-nova-conductor                  0                    
kollaglue/centos-rdo-nova-base                       0                    
kollaglue/fedora-rdo-base                            0                    
kollaglue/fedora-rdo-nova-scheduler                  0                    
kollaglue/centos-rdo-nova-network                    0                    
kollaglue/centos-rdo-nova-compute                    0                    
kollaglue/fedora-rdo-zaqar                           0                    
kollaglue/centos-rdo-mariadb-app                     0                    
kollaglue/fedora-rdo-glance-registry                 0                    
kollaglue/fedora-rdo-nova-base                       0                    
kollaglue/fedora-rdo-glance-api                      0                    
kollaglue/centos-rdo-glance-base                     0                    
kollaglue/fedora-rdo-nova-libvirt                    0                    
kollaglue/centos-rdo-neutron-base                    0                    
kollaglue/fedora-rdo-rabbitmq                        0                    
kollaglue/centos-rdo-nova-libvirt                    0                    
kollaglue/fedora-rdo-keystone                        0   
4.Kolla代码目录结构


  • ansible - Contains Ansible playbooks to deploy Kolla in Docker containers.
  • demos - Contains a few demos to use with Kolla.
  • dev/heat - Contains an OpenStack-Heat based development environment.
  • dev/vagrant - Contains a vagrant VirtualBox/Libvirt based development environment.
  • doc - Contains documentation.
  • etc - Contains a reference etc directory structure which requires configuration of a small number of configuration variables to achieve a working All-in-One (AIO) deployment.
  • docker - Contains jinja2 templates for the docker build system.
  • tools - Contains tools for interacting with Kolla.
  • specs - Contains the Kolla communities key arguments about architectural shifts in the code base.
  • tests - Contains functional testing tools.
  5. Debugging Kolla可以通过执行的部署目标来确定容器的状态:

# docker ps –a
  通过日志来进行检查:

# docker exec -it heka bash
  所有的容器都可以从这个目录中获取服务日志:/var/log/kolla/SERVICE_NAME。Docker使用heka来展现收集到的日志信息。
  如果需要输出日志,请运行:

# docker logs <container-name>
  请注意,大多数容器不会stdout,上面的命令将不会提供信息。


6.参考资源  Kolla wiKI: https://wiki.openstack.org/wiki/Kolla
  Docs: http://docs.openstack.org/developer/kolla/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388225-1-1.html 上篇帖子: openstack-mitaka安装部署 下篇帖子: Python API:openstack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表