hongleimi 发表于 2017-6-26 15:09:28

OpenStack 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 出现这个问题。安装完其他的可以在尝试。
安装完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]
查看完整版本: OpenStack Kolla之部署