简介
Opencontrail4.0 引入了容器化的Contrail架构,基于该容器化架构,用户能以docker容器的形式运行所有的Contrail组件,包括控制/配置,分析,分析数据库和vRouter-agent。本文档旨在指导用户通过Openstack-kolla来安装openContrail。整个安装过程参考文档[1][2][3],文档[2]中Contrail-ansible安装contrail容器,kolla-ansible负责安装openstack容器,kolla-ansible通过设定特定的参数来使用contrail已定制化的nova-compute和neutron容器,然后运行openstack环境,nova和neutron容器中改变的参数将激活opencontrail功能。
所有的contrail容器都是公开可用,在docker hub上可以找到,参考[4][5][6]。
环境要求
用户可使用物理服务器或者虚拟机,可以根据文档安装单节点或者多节点集群
Ubuntu 16.04.2 LTS, Kernel: 4.4.0-62-generic(系统保证ubuntu16.04.2)
机器上有2个网卡,第一个网卡被用于作为contrail-vrouter的接口和openstack服务接口;第二个网卡可以没有ip,基本没有使用.两个网卡是kolla特定的要求,第二个网卡用于openstack的隧道网段,对接过程中实际没有使用。
32GB的内存,考虑到集群的使用,150GB硬盘空间
如果使用虚拟机,需要使虚拟机支持嵌套虚拟化[7][8]
设置root权限访问机器
机器准备
虚拟机环境
vmware创建虚拟机
强烈建议 CPU:2*4 32GB 100GB,我之前通过虚拟机安装过程中,用于自身虚拟机配置不够,多次安装成功后,过几分钟后,服务就故障。
-
# egrep "vmx|svm" /proc/cpuinfo
如果没有开启虚拟化请开启虚拟化,重启系统reboot生效
创建两个网卡,保证两个网卡可以连接互联网
ens160作为openstack环境管理网ip,隧道网ip,存储网Ip。ens160也作为host默认路由,可以 连接外网,用于远程horizon登录和下载依赖包。
ens192作为外网ip,需保证ens192可联通互联网,后面br-ex绑定这个网卡,虚拟机是通过这块网卡访问外网
服务器环境准备
虚拟机安装过程中后,由于公司虚拟机配置资源受限,使用的人过多,导致服务不稳定,果断换服务器安装了。
重装服务器,系统ubuntu16.04.2
两个网卡准备
eno3.201作为openstack环境管理网ip,隧道网ip,存储网Ip。eno3.201也作为host默认路由,可以 连接外网,用于远程horizon登录和下载依赖包。
eno3.204作为外网ip,需保证eno3.204可联通互联网,后面br-ex绑定这个网卡,虚拟机是通过这块网卡访问外网
note: 自身实验室环境中进行了vlan隔离,物理服务器第三个网口所连接的交换机放行了201-204 vlan tag,所以服务器操作系统安装完后,自己手动添加vlan tag用于与外界连通。识个人情况可以自行跳过,只需保证两块网卡能访问互联网即可。
具体配置如下:
vi /etc/network/interfaces auto lo iface lo inet loopback auto eno3 iface eno3 inet static address 192.168.27.200 netmask 255.255.255.0 auto eno3.201 iface eno3.201 inet static address 192.168.27.52 netmask 255.255.255.0 network 192.168.27.0 broadcast 192.168.27.255 gateway 192.168.27.254 dns-nameservers 10.19.8.10 auto eno3.204 iface eno3.204 inet static address 192.168.30.35 netmask 255.255.255.0
为了保证物理机器开机后,vlan tag自动添加,作如下配置
vi /etc/rc.local
vconfig add eno3 201
vconfig add eno3 204
eno3.201 作为管理ip 192.168.27.52
eno3.204 作为外网ip 192.168.30.35
环境软件包下载
- 源更新
备份源信息,更新阿里源
root@opencontrail:~# cd /etc/apt/
root@opencontrail:/etc/apt# ls
apt.conf.d preferences.d sources.list sources.list~ sources.list.d trusted.gpg trusted.gpg.d
root@opencontrail:/etc/apt# cp sources.list sources.list.bak
root@opencontrail:/etc/apt# > sources.list
root@opencontrail:/etc/apt# vi sources.list
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
apt-get update
2.修改主机名
查看修改本机
vi /etc/hostname
opencontrail
vi /etc/hosts
127.0.0.1 localhost
192.168.27.52 opencontrail
3.设置root
新装系统需要设置root账户,保证机器可以ssh
4.安装NTP
apt-get install ntp
手工同步时间
apt-get install ntpdate
ntpdate 0.centos.pool.ntp.org
然后reboot机器
5.基础包下载
apt-get update
apt-get install python-pip sshpass python-oslo-config python-dev libffi-dev gcc libssl-dev qemu-kvm
pip install -U pip
pip install ansible #Upgrades pip to the latest version
pip install pyOpenSSL==16.2.0
6.docker安装
本文档中docker指定安装1.13.1,kolla-ansible安装脚本会检测docker版本,这里提前安装好,参考[9]
6.1 Ubuntu导入软件仓库证书
apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
6.2 新增一个 docker.list 文件,在其中增加对应的软件安装源.
以 Ubuntu 16.04 为例:
vim /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-xenial main
6.3 更新软件源
apt-get update
6.4 显示软件源中所有Docker软件包安装信息
apt-cache policy docker-engine
6.5 移除其它版本Docker
如果之前存在其它版本的Docker,可以使用以下命令先移出:
apt-get purge docker-engine
6.6 安装指定版本Docker
根据实际情况,选定要安装的 Docker 版本进行安装。这里以安装