Kolla单节点部署手册(centos7)
一、系统介绍a)概述:Kolla为openstack的部署提供了有效、快捷、方便、易于维护、方便版本更新与回退的方案。Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三步:Pul
- 一 系统介绍
- 二 所涉及技术
- 三 部署
- a 环境说明
- b 安装
- c 部署
- 四 使用 Openstack
一、 系统介绍
a) 概述:
Kolla为openstack的部署提供了有效、快捷、方便、易于维护、方便版本更新与回退的方案。
Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。
b) 拓扑图:
二、 所涉及技术
- Docker
- Ansible
- Python
- docker-py
- Jinja2
三、 部署
a) 环境说明
i. 硬件环境
- 服务器:Dell Edge R720
- 系统:Centos7.2.1511
- 内存:64G
- 硬盘:4.3T
- CPU:Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz*2
- 网卡:千兆以太网卡(此项目用单网卡em1)
ii. 软件环境
组件 | 版本号 |
---|---|
Ansible | 1.9.6 |
Docker | 1.12.2 |
Docker Python | 1.10.4 |
Python Jinja2 | 2.8.0 |
Pip | 8.1.2 |
Kola branch | stable |
b) 安装
i. 安装epel源和Pip并升级Pip
# yum install -y epel-release
# yum -y update
# yum install -y python-pip
# pip install –U pip
ii. 安装依赖
# yum install -y python-devel libffi-devel gcc openssl-devel git
iii. 安装docker
# curl -sSL https://get.docker.io | bash
注:这条命令安装的是最新版的docker
iv. 配置docker
在docker的守护进程启动配置中设置MountFlags
,如果没有正确设置MountFlags
选项,那么kolla-ansible
将无法部署neutron-dhcp-agent
容器并抛出APIError / HTTPError
。这儿有两种方式可以设置MountFlags
选项。
1. 配置默认的docker.service文件
先找到位置,下面代码中比较大的字体既默认位置
#systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
修改MountFlags
选项
# vim /usr/lib/systemd/system/docker.service
在service
节加上
MountFlags=shared
保存退出,重新加载配置,重启docker服务
# systemctl daemon-reload
# systemctl restart docker
2. 新建一个docker后台守护进程配置文档增加配置
# mkdir -p /etc/systemd/system/docker.service.d
# tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
加载配置,重启服务
# systemctl daemon-reload
# systemctl restart docker
v. 安装最新版docker-py
# yum install -y python-docker-py
# pip install -U docker-py
vi. 安装ansible,此项目中用ansible1.9.6可以用yum安装也能用pip安装
# yum install -y ansible1.9
# pip install ansible==1.9.6
vii. 克隆kolla仓库stable分支
# git clone https://git.openstack.org/openstack/kolla -b stable/mitaka
viii. 安装kolla及其依赖
# pip install kolla/
ix. 安装 tox
Tox 是个标准的 virtualenv (python 虚拟沙盒管理器)和命令行测试
工具,它的作用有以下几点:
- 检查你的软件包能否在不同的 Python 版本或解释器下正常安
装
- 在不同的环境中运行运行你的测试代码
- 作为持续集成服务器的前端,大大减少测试工作所需时间
这儿我们用 tox 工具生成 kolla-build 配置
# pip install -U tox
x. 安装 openstack 和 neutron 的命令行客户端, 方便后面部署完使用 openstack
# pip install -U python-openstackclient python-neutronclient
xi. 安装 kolla 的 python 依赖包
# cd kolla/
# pip install -r requirements.txt -r test-requirements.txt
xii. 生成配置 kolla-build.conf
# tox -egenconfig
xiii. 拷贝配置文件到/etc 目录下
# cp -rv etc/kolla /etc/
xiv. 构建容器镜像
# kolla-build --base centos --type source
注: 此处需要时间比较长, 有一部分镜像可能构建不成功, 对构建
不成功的镜像可单独构建, 或从其他地方把镜像 pull 或者拷贝过来
用。
c) 部署
i. 修改配置
# grep -v ^$ /etc/kolla/globals.yml |grep -v ^#
---
kolla_install_type: "source"
kolla_internal_vip_address: "192.168.1.12"
network_interface: "em1"
neutron_external_interface: "em1
需要修改的部分即以上, ip 修改成物理机网段未使用的 ip, em1 为
网卡名。
ii. 检查
# kolla-ansible prechecks
这儿出错一般都是配置错误, 修改 ip 跟网卡即可。
iii. 生成密码
# kolla-genpwd
iv. 安装部署
# kolla-ansible deploy
Precheck 成功这儿失败的话一般都是镜像没有 build 成功, 注意查
看报错信息, 镜像没 build 成功的处理方式一般有两种,单独
build 未成功的镜像, 从已 build 成功的地方把镜像打包拷贝过
来, 或者 pull 过来。
在部署到 neutron-ovs 容器的时候会断网, 因为这儿用单网卡
模式, 需要配置 ovs:
1. 修改 em1 配置
# cat /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=OVSPort
DEVICE=em1
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
2. 增加 br-ex 配置, 新建 ifcfg-br-ex 文件
# vim /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=114.114.114.114
3. 配置完之后重新 deploy
# kolla-ansible deploy
四、 使用 Openstack
a) 生成环境变量脚本
成功部署 OpenStack 后,运行以下命令可以在 deploy 节点上创
建一个 openrc 文件/etc/kolla/admin-openrc.sh
# kolla-ansible post-deploy
b) 环境变量生效
# source /etc/kolla/admin-openrc.sh
c) 查看环境变量中的 OS 账户信息进行 dashboard 登录
# export OS_USERNAME=admin
# export OS_PASSWORD=RdNBNY0E15YsMhmxfUX0pqhkm8EvqLY5sdNSdZzv
d) 用/etc/kolla/global.conf 的配置的 ip 访问 dashboard
部署成功!
更多推荐
所有评论(0)