基本環境
作業系統:CentOS Linux release 7.5.1804 (Core)
核心版本:3.10.0-862.el7.x86_64
docker版本:1.13.1
1、禁用宿主機的 Libvirt 服務
大多數作業系統會預設啟動 Libvirt,但使用 Kolla 來部署 OpenStack 的話,Libvirt 應該在容器中執行並管理虛擬機器。
所以宿主機的 Libvirt 需要被關閉,以免造成衝突。
systemctl stop libvirtd.service systemctl disable libvirtd.service
部署kolla
1、安裝依賴
yum install epel-release python-pip yum install -y python-devel libffi-devel openssl-devel gcc pip install -U pip
2、配置國內pip源
不然這個速度很慢
mkdir ~/.pip cat << EOF > ~/.pip/pip.conf [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ [install] trusted-host=pypi.tuna.tsinghua.edu.cn EOF
3、安裝stable版kolla
下載原始碼 git clone https://git.openstack.org/openstack/kolla -b stable/rocky 安裝依賴 pip install -r kolla/requirements.txt -r kolla/test-requirements.txt 原始碼安裝 pip install kolla/
4、安裝tox,生成配置檔案
pip install -U tox cd kolla/ tox -e genconfig cp -rv etc/kolla /etc/
編輯 kolla-build.conf:控制 Kolla Image Build 的細則。
vim /etc/kolla/kolla-build.conf [DEFAULT] base = centos install_type = source namespace = kolla push = false # The Docker Images tag (string value) tag = 6.0.0
5、docker安裝
yum install docker -y 配置docker mountflags 在[Service]中新增MountFlags=shared # vim /usr/lib/systemd/system/docker.service [Service] MountFlags=shared systemctl daemon-reload systemctl restart docker
MountFlags=shared為neutron的要求,必須配置為share,否則後面部署的時候neutron可能會有問題。
編譯映象
簡單的來理解 Kolla 元件的話,它就是一個自動化構建部署 OpenStack 服務所需要的映象的工具。其內含組織了大量的 Dockerfile,供構建映象時使用。
kolla-build
也可以新增引數項 -p default
對應 kolla-build.conf 的 [profiles] Sections,default 型別表示僅構建核心專案的映象。
如果個別映象編譯失敗可以重新執行以上操作,因為docker的容器快取,重新編譯會很快。
NOTE:但有些情況下,可能會把錯誤的配置引數 Cache 住,此時建議執行 Cleanup 操作之後再重跑:
# 從系統中移除部署的容器 tools/cleanup-containers # 移除由於殘餘網路變化引發 docker 啟動的 neutron-agents 主機 tools/cleanup-host # 從 Cache 中移除所有的 docker image tools/cleanup-images
也可以檢視一下可編譯的映象
kolla-build --list-images
安裝kolla-ansible
1、安裝ansible
ansible的版本要大於2.0
pip install ansible
2、安裝kolla-ansible
git clone https://github.com/openstack/kolla-ansible -b stable/rocky cd kolla-ansible pip install -r requirements.txt -r test-requirements.txt -e .
配置一下
cp etc/kolla/globals.yml /etc/kolla/ cp etc/kolla/passwords.yml /etc/kolla/ kolla-genpwd cp ansible/inventory/* /root/
3、修改檔案
編輯 globals.yml檔案
kolla_install_type: "source" openstack_release:需要與映象的 Tag 一致,否則部署時找不到映象。 network_interface:指定管理網介面 neutron_external_interface:指定外部網介面 kolla_internal_vip_address:指定 HAProxy 虛擬 IP,單點部署可以棄用 HAProxy enable_haproxy: "no"。 enable_horizon: "yes"
4、修改 Hypervisor Type
因為操作環境是 VMware 的虛擬機器,所以存在巢狀虛擬化不支援 KVM 的問題,如果你希望啟動 OpenStack 例項,那就需要啟用 QEMU(Default KVM)。
mkdir -p /etc/kolla/config/nova cat << EOF > /etc/kolla/config/nova/nova-compute.conf [libvirt] virt_type=qemu cpu_mode = none EOF
檢查配置
kolla-ansible prechecks
開始部署
kolla-ansible deploy
報錯
在用Dockerfile製作映象的時候總是出現如下錯誤
HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
原因分析:
在下載python庫的時候,由於國內網路原因,python包的下載速度非常慢,檢視pip 文件,只要在 pip的時候控制超時即可, 具體引數為 --default-timeout=100, 後面的時間可以自己指定。
可以在kolla-build中指定一下:
[root@centos kolla]# pwd /root/kolla [root@centos kolla]# more tox.ini | grep pip install_command = pip --default-timeout=1000 install {opts} {packages}