kolla 部署openstack 踩坑

openstack kolla 入門

kolla 使命

快速開始

基礎(chǔ)環(huán)境

安裝前檢查

安裝依賴

版本要求

安裝kolla 和kolla-ansible

完成部署

遇到問題

涉及技術(shù)點及成果

openstack kolla 入門

kolla 使命

To provide production-ready containers and deployment tools for

operating OpenStack clouds

快速開始

官方文檔all-in-one

多節(jié)點部署

手動構(gòu)建容器鏡像

基礎(chǔ)環(huán)境

*裸機(jī)/虛擬機(jī)(ubuntu,centos,oracle linux,container OS

platforms)

root 用戶操作

配置 最低要求

網(wǎng)卡 2個

內(nèi)存 8G

存儲 40G

安裝前檢查

ip addr show

如果第二塊網(wǎng)卡未啟動

ip link set ens* up

安裝依賴

升級內(nèi)核到最新

[ubuntu]

apt-get install linux-image-generic-lts-wily

[centos]

N/A

安裝升級pip

[ubuntu]

apt-get update

apt-get install python-pip

pip install -U pip

[centos]

yum install epel-release

yum install python-pip

pip install -U pip

編譯,pip包管理依賴

[ubuntu]

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

[centos]

yum install python-devel libffi-devel gcc openssl-devel

版本要求

mitaka

組件 最低 最高 說明

ansible 1.9.4 <2.0.0 部署主機(jī)

docker 1.10.0 none 目標(biāo)節(jié)點

docker python 1.6.0 none 目標(biāo)節(jié)點

python jinja2 2.6.0 none 部署主機(jī)

newton

組件 最低 最高 說明

ansible 2.0.0 <2.0.0 部署主機(jī)

docker 1.10.0 none 目標(biāo)節(jié)點

docker python 1.6.0 none 目標(biāo)節(jié)點

python jinja2 2.8.0 none 部署主機(jī)

安裝ansible

[CentOS or RHEL systems]

yum install ansible

[DEB based systems]

pip install -U ansible

安裝配置docker

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

docker –version

systemd

# 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

restart docker server

# Run these commands to reload the daemon

systemctl daemon-reload

systemctl restart docker

升級docker py

pip install -U docker-py

安裝配置NTP

yum install ntp

[centos]

systemctl enable ntpd.service

systemctl start ntpd.service

更新本地時間

ntpdate asia.pool.ntp.org

關(guān)閉libvirt

[CentOS 7]

systemctl stop libvirtd.service

systemctl disable libvirtd.service

[ubunut]

service libvirt-bin stop

update-rc.d libvirt-bin disable

安裝kolla 和kolla-ansible

pip install kolla-ansible

pip install kolla(官方未給出)

拷貝配置和資源文件

[CentOS]

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

[Ubuntu]

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

[CentOS]

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

[Ubuntu]

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

為安裝openstack 做準(zhǔn)備

修改全局配置

/etc/kolla/globals.yml

network_interface: “ens3”

neutron_external_interface: “ens4”

kolla_base_distro

kolla_install_type

kolla_internal_vip_address:

all-in-one 則修改成第一個網(wǎng)卡的ip(注意)

關(guān)閉HAporxy–官方未說明

/usr/share/kolla/ansible/group_vars/all.yml

enable_haproxy: “no”

修改docker 重啟策略–官方未說明

/usr/share/kolla/ansible/group_vars/all.yml

docker_restart_policy:”on-failure”

自動生成密碼

kolla-genpwd

修改登陸頁面密碼

keystone_admin_password: password

快速準(zhǔn)備

kolla-ansible -i all-in-one bootstrap

拉取官方鏡像

kolla-ansible pull (時間1個小時左右 可能會網(wǎng)絡(luò)問題 重新拉取

即可)

docker images 獲取鏡像列表

使用kolla 部署前端口占用檢查

kolla-ansible prechecks -i all-in-one

完成部署

kolla-ansible deploy -i all-in-one

kolla-ansible post-deploy

測試部署結(jié)果

source /etc/kolla/admin-openrc.sh

[centos]

cd /usr/share/kolla

./init-runonce

[ubuntu]

cd /usr/local/share/kolla

./init-runonce

遇到問題

單節(jié)點部署問題

1.預(yù)先安裝的docker軟件包版本同bootstrap的準(zhǔn)備配置沖突

解決辦法:刪除沖突的軟件包

rpm -erase pkg

修改/usr/share/kolla/ansible/roles/baremetal/default/main.yml

中對應(yīng)任務(wù)的軟件包版本同本機(jī)相同

2.導(dǎo)入gpg 超時

rpm –import https://yum.dockerproject.org/gpg

可以導(dǎo)入即可繼續(xù)

3.docker 服務(wù)啟動失?。?/p>

/etc/systemd/system/docker.service.d 配置被修改錯誤

修改模板配置模板 則可以正常啟動

/usr/share/kolla/ansible/roles/baremetal/templates/

docker_systemd_service.j2 刪除第二行之后所有內(nèi)容

4.ubuntu 16.04安裝最新docker 失敗

curl: (35) gnutls_handshake() failed: The TLS connection was

non-properly terminated.

沒有安裝 軟件包curl

安裝則解決 docker 失敗問題

多節(jié)點部署問題

1.多節(jié)點ansible 管理 ssh沒有權(quán)限問題

Failed to connect to the host via ssh: Permission denied

(publickey,password

根因:ssh 無密碼登陸沒有 對本機(jī) 和其他節(jié)點 配置

解決:

ssh-copy-id 配置所有節(jié)點對應(yīng)用戶無密碼輸入 可直接ssh

docker 重啟策略問題(偶現(xiàn))

問題

fatal: [localhost]: FAILED! => {"changed": true,

"failed": true,

"msg": "'Traceback (most recent call

last):\\n File

\"/tmp/ansible_XIOIpx/ansible_module_kolla_docker.py\"

,

line 742, in main\\n result = bool(getattr(dw,

module.params.get(\\'action\\'))())\\n File

\"/tmp/ansible_XIOIpx/ansible_module_kolla_docker.py\"

,

line 567, in start_container\\n

self.create_container()\\n File

\"/tmp/ansible_XIOIpx/ansible_module_kolla_docker.py\"

,

line 555, in create_container\\n

self.dc.create_container(**options)\\n File

\"/usr/local/lib/python2.7/distpackages/docker/api/container.py\"

, line 135, in

create_container\\n return

self.create_container_from_config(config, name)\\n File

\"/usr/local/lib/python2.7/distpackages/docker/api/container.py\"

, line 146, in

create_container_from_config\\n return

self._result(res, True)\\n File

\"/usr/local/lib/python2.7/distpackages/docker/client.py\"

, line 178, in _result\\n

self._raise_for_status(response)\\n File

\"/usr/local/lib/python2.7/distpackages/docker/client.py\"

, line 174, in

_raise_for_status\\n raise errors.APIError(e, response,

explanation=explanation)\\nAPIError: 500 Server Error:

Internal Server Error (\"{\"message\":\"maximum retry

count cannot be used with restart policy \\'unlessstopped\\'\"}\")\\n’"}

參考社區(qū)修改

https://review.openstack.org/#/c/424114/2/ansible/library/kolla_docker.py

問題:社區(qū)已經(jīng)修改但實際部署過程并未修改 當(dāng)前看問題并未解

決。

部署后openstack服務(wù)日志存放目錄

/var/lib/docker/volumes/kolla_logs/_data/

docker 問題定位

docker exec -it heka bash

docker logs container-name

優(yōu)化:

配置阿里云 docker 鏡像加速倉庫

1)注冊個帳號

https://dev.aliyun.com/search.html

阿里云會自動為用戶分配一個鏡像加速器的地址,登錄后進(jìn)入”管理

中心”–>”加速器”,里面有分配給你的鏡像加速器的地址以及各個環(huán)境

的使用說明。

鏡像加速器地址:https://xxxxx.mirror.aliyuncs.com

2)配置docker

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-‘EOF’

{

“registry-mirrors”: [“https://zt13pwpr.mirror.aliyuncs.com“]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

涉及技術(shù)點及成果

docker 構(gòu)建鏡像

kolla-ansible 構(gòu)建鏡像

kolla 鏡像倉庫

docker 服務(wù)配置

問題debug

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容