Kolla单节点部署手册(centos7)

  • 一 系统介绍
    • a 概述
    • b 拓扑图
  • 二 所涉及技术
  • 三 部署
    • a 环境说明
      • i 硬件环境
      • ii 软件环境
    • b 安装
      • i 安装epel源和Pip并升级Pip
      • ii 安装依赖
      • iii 安装docker
      • iv 配置docker
        • 配置默认的dockerservice文件
        • 新建一个docker后台守护进程配置文档增加配置
      • v 安装最新版docker-py
      • vi 安装ansible此项目中用ansible196可以用yum安装也能用pip安装
      • vii 克隆kolla仓库stable分支
      • viii 安装kolla及其依赖
      • ix 安装 tox
      • x 安装 openstack 和 neutron 的命令行客户端 方便后面部署完使用 openstack
      • xi 安装 kolla 的 python 依赖包
      • xii 生成配置 kolla-buildconf
      • xiii 拷贝配置文件到etc 目录下
      • xiv 构建容器镜像
    • c 部署
      • i 修改配置
      • ii 检查
      • iii 生成密码
      • iv 安装部署
        • 修改 em1 配置
        • 增加 br-ex 配置 新建 ifcfg-br-ex 文件
        • 配置完之后重新 deploy
  • 四 使用 Openstack
      • a 生成环境变量脚本
      • b 环境变量生效
      • c 查看环境变量中的 OS 账户信息进行 dashboard 登录
      • d 用etckollaglobalconf 的配置的 ip 访问 dashboard

一、 系统介绍

a) 概述:

Kolla为openstack的部署提供了有效、快捷、方便、易于维护、方便版本更新与回退的方案。
Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。

b) 拓扑图:

Kolla单节点部署手册(centos7)_第1张图片

二、 所涉及技术

  • 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

Kolla单节点部署手册(centos7)_第2张图片
部署成功!

你可能感兴趣的:(opnestack,kolla)