Openstack 之 ubuntu16使用kolla部署实验

时间:2017-10-28 11:06:11   收藏:0   阅读:2774

    现在Openstack社区的安装部署方式已经开始推荐使用kolla进行部署了,记得年初还是推荐使用ansible方式,我的理解,kolla项目也是基于原来ansible的部署方式,原来ansible的部署方式支持baremetel和lxc容器两种方式进行部署,kolla的部署方式是完全基于docker和ansible两大工具实现。

    具体kolla的原理和优势这里就不细讲,请参考官网资料。下面是参考官网的Kolla Deployment Guide做的all-in-one的实验。

    

物理主机网络配置:

物理主机: 192.168.170.200   192.168.1.200

物理网卡#135  192.168.170.0/24

物理网卡#136  192.168.1.0/24


kolla实验虚拟服务器(virtualbox),配置4CPU,8G内存:

虚拟机桥接地址:  

桥接网卡135# enp0s3    192.168.170.201   

桥接136# enp0s8 192.168.1.201

操作系统: ubuntu16    


第一次实验,根据官网的这个操作指导进行:

https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html

简要步骤:

1. 安装pip:

apt-get update

apt-get install python-pip

pip install -U pip

2. 安装相关的依赖包:

apt-get install python-dev libffi-dev gcc libssl-dev python-selinux

3. 安装ansible,版本要求Ansible >2.0 

pip install -U ansible  或者:  apt-get install ansible

4.安装docker

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

检查docker版本,版本需要在范围 docker-engine>=1.10.0,!=1.13.0

docker --version

5. 修改docker配置文件

# Create the drop-in unit directory for docker.service

mkdir -p /etc/systemd/system/docker.service.d


# Create the drop-in unit file

tee /etc/systemd/system/docker.service.d/kolla.conf <<-‘EOF‘

[Service]

MountFlags=shared

EOF


重启docker:

# Run these commands to reload the daemon

systemctl daemon-reload

systemctl restart docker


6.安装ntp

apt-get install ntp


7. 关闭libvirt:

service libvirt-bin stop

update-rc.d libvirt-bin disable


8.安装kolla-ansible:

pip install kolla-ansible


9.拷贝 globals.yml and passwords.yml 

cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/kolla/

10.拷贝inventory files 到当前目录:

cp /usr/local/share/kolla-ansible/ansible/inventory/* .

11.拷贝 Kolla and Kolla-Ansible repositories 

git clone https://github.com/openstack/kolla

git clone https://github.com/openstack/kolla-ansible


12.拷贝globals.yml and passwords.yml到etc/kolla目录

cp -r kolla-ansible/etc/kolla /etc/kolla/

13.拷贝inventory files 到当前目录:

cp kolla-ansible/ansible/inventory/* .


14. 修改文件 /etc/kolla/globals.yml,编辑网络接口参数:

network_interface: "enp0s3"

neutron_external_interface: "enp0s8"

kolla_internal_vip_address: "192.168.170.210"

openstack_release:"4.0.0"   #注意这里是一个坑,默认安装这个参数的值是“auto”,实际安装的时候报错说找不到相应的5.0.0版本,查阅了相关的文档,4.0.0对应的是pike(P版),那么5.0.0版本应该对应Q版,截止到2017年10月应该还在开发测试阶段。


15.生成passwords

kolla-genpwd


16.生成playbook 。

kolla-ansible -i <<inventory file>> bootstrap-servers

其中<<inventory file>> 替换为inventory文件,这里我们使用all-in-one,即所有组件安装在一个节点: /home/ywb/kolla-ansible/ansible/inventory/all-in-one

kolla-ansible -i /home/ywb/kolla-ansible/ansible/inventory/all-in-one bootstrap-servers


碰到问题:安装过程中碰到重启docker失败,经过网上查找原因,解决方法如下:

假如又碰到 Error starting daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: overlay2, aufs; Please cleanup or explicitly choose storage driver (-s <DRIVER>),若你確定你 container 的資料都在 /var/lib/docker/aufs 內,可以移除 /var/lib/docker/overlay2 資料夾,再 launch daemon 一次應該就可以了!


17. 如果是物理机上部署,确认支持kvm的kernel是不是打开:

egrep -c ‘(vmx|svm)‘ /proc/cpuinfo

如果是虚拟机上实验部署,执行下面的命令使用qemu:

mkdir -p /etc/kolla/config/nova

cat << EOF > /etc/kolla/config/nova/nova-compute.conf

[libvirt]

virt_type = qemu

cpu_mode = none

EOF

17.构建container images

编辑文件: /etc/systemd/system/docker.service.d/kolla.conf

[Service]

MountFlags=shared

ExecStart=

ExecStart=/usr/bin/docker daemon \

 -H fd:// \

 --mtu 1400

重启docker:

systemctl daemon-reload

systemctl restart docker


18. 部署前的检查:

kolla-ansible prechecks -i /home/ywb/kolla-ansible/ansible/inventory/all-in-one

碰到问题:检查到rabbitq的时候,要求地址能够解析,在/etc/hosts中增加对主机两个网卡地址 192.168.170.201 和 192.168.1.201地址的解析


19. 部署 OpenStack:


kolla-ansible deploy -i /home/ywb/kolla-ansible/ansible/inventory/all-in-one


碰到问题:Tag 5.0.0 not found in repository docker.io/kolla/centos-binary-fluentd

解决方法:在 /etc/kolla/globals.yml 中,将 openstack_release 参数改为:  "4.0.0"

(前面参数说明已经讲到这个问题)


另外,可以使用阿里云的docker容器加速器,使用方法:

需要登录阿里云,在容器Hub服务的控制台,左侧的加速器帮助页面就会显示为你独立分配的加速地址。具体使用方法可以在网上查。我的阿里云加速器地址:https://h4ez0olj.mirror.aliyuncs.com 

在/etc/systemd/system/docker.service.d/kolla.conf文件中,修改参数

ExecStart=/usr/bin/docker daemon \

 -H fd:// \

 --mtu 1400

 后面增加  --registry-mirror 参数,修改后如下:

ExecStart=/usr/bin/docker daemon --registry-mirror=https://h4ez0olj.mirror.aliyuncs.com \

 -H fd:// \

 --mtu 1400

 

 然后重启服务:

 systemctl daemon-reload

 systemctl restart docker


本文出自 “yuweibing的技术博客” 博客,请务必保留此出处http://yuweibing.blog.51cto.com/3879355/1976882

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!