1. 程式人生 > >Openstack 之 ubuntu16使用kolla部署實驗

Openstack 之 ubuntu16使用kolla部署實驗

docker kolla openstack

現在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

Openstack 之 ubuntu16使用kolla部署實驗