Kolla簡介
Kolla項目起源於TripleO項目,聚焦於使用Docker容器部署OpenStack服務。該項目由Cisco於2014年9月提出,是OpenStack 社區Big Tent開發模式下的孵化項目。Kolla項目是一個支持Openstack服務以容器的方式部署,借助ansible部署工具可以簡單的擴展到多個節點。同時,又借助於使用 heat 來編排 Kolla 集群。
安裝kolla,必須自己build鏡像,由於網絡的原因,經常會導致在build 鏡像的時候失敗。因此可以直接采用kolla官方提供的鏡像文件,這樣就不需要自己build鏡像的環節,也就是搭建本地的docker registry。本次部署,我是直接采用公司的鏡像倉庫。
一、安裝基礎包
| yum update |
| yum install epel-release #啟用EPEL的repo源 |
| yum install python-devel libffi-devel gcc openssl-devel git python-pip #安裝所需的依賴包 |
| pip install --upgrade pip #這里踩過坑,先升級一下 |
二、安裝docker
1. 設置repo,配置docker源
目前最新版本的Docker是1.13.1,Kolla目前支持的Docker是1.12.x,所以我們要指定Docker的版本來安裝,並且一定要采用Docker官方的源。為yum添加一個repo文件,在centos7下面可以直接運行下面的代碼。這個repo的目的就是為了讓我們的yum可以根據repo文件里提供的連接去檢索docker最新的安裝包。
| tee /etc/yum.repos.d/docker.repo << 'EOF' |
| [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF |
2. 安裝Docker
| yum install docker-engine-1.12.5 docker-engine-selinux-1.12.5 |
3. 設置docker
| mkdir /etc/systemd/system/docker.service.d |
| tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF' |
| [Service] MountFlags=shared EOF |
4. 重啟docker服務
| systemctl daemon-reload |
| systemctl enable docker |
| systemctl restart docker |
5. 設置docker采用私有倉庫
| vim /usr/lib/systemd/system/docker.service |
| #ExecStart=/usr/bin/dockerd ExecStart=/usr/bin/dockerd --insecure-registry XXXXXXX:XXXX #鏡像倉庫地址:端口號 |
6. 重啟docker服務
| systemctl daemon-reload |
| systemctl restart docker |
三、安裝Ansible
| yum install ansible |
四、kolla-ansible
1. 下載kolla-ansible
| cd /home |
| git clone http://git.trystack.cn/openstack/kolla-ansible -b stable/ocata |
2. 安裝kolla-ansible
| cd kolla-ansible |
| pip install . |
3. 復制相關文件
| cp -r etc/kolla /etc/kolla/ |
| cp ansible/inventory/* /home/ |
4. 如果在虛擬機里裝kolla,需要把virt_type=qemu,默認是kvm
| mkdir -p /etc/kolla/config/nova |
| cat << EOF > /etc/kolla/config/nova/nova-compute.conf |
| [libvirt] virt_type=qemu cpu_mode = none EOF |
5. 生成密碼文件,這是登錄Dashboard,admin使用的密碼,可以根據自己需要進行修改
| kolla-genpwd |
| vim /etc/kolla/passwords.yml |
![]()
6. 編輯文件
| vim /etc/kolla/globals.yml |
| kolla_install_type: "source" openstack_release: "4.0.3" docker_registry: "XXXXXX" #鏡像倉庫地址+端口號 docker_namespace: "lokolla" |
7. 安裝OpenStack
| kolla-ansible deploy -i /home/all-in-one |
五、驗證部署
1. 完成部署
| kolla-ansible post-deploy |
2. 安裝OpenStack client端
| pip install python-openstackclient |
3. 編輯文件/usr/share/kolla-ansible/init-runonce,網絡需要根據實際情況修改,10.0.2.0的網絡是通過路由器訪問互聯網,配置好這個,裝完虛擬機就可以直接ping通。
| vim /usr/share/kolla-ansible/init-runonce |
| EXT_NET_CIDR='10.0.2.0/24' EXT_NET_RANGE='start=10.0.2.150,end=10.0.2.199' EXT_NET_GATEWAY='10.0.2.1' |
4. 使用 init-runonce腳本創建基礎環境
| source /etc/kolla/admin-openrc.sh |
| cd /usr/share/kolla-ansible |
| ./init-runonce |
5. 根據最后的命令提示,可直接創建虛擬機
| openstack server create \ |
| --image cirros \ --flavor m1.tiny \ --key-name mykey \ --nic net-id=2ba93782-71e2-44d6-ad64-796c5853dcce \ demo1 |

