OPNFV Euphrates 安装(一)

1 Euphrates新特性介绍

OPNFV社区于2017年10月24发布的第五个版本Euphrates(幼发拉底河,位于亚洲),新版本增加了对Kubernetes容器技术的支持,也就是说OPNFV的底层VIM不再仅仅是Openstack架构了,同时社区采用了XCI(cross community continuous integration)跨社区持续集成技术,能够更快更好的使用上游社区最新的版本和代码,在MANO管理层集成了ETSI NFV的Open Baton项目。E版本的详细新特性如下[1][2]:

  • 底层架构增加:OPNFV即将开启容器之旅。Euphrates将Kubernetes和容器集成到端到端堆栈的多个组件,以及通过Kolla部署容器化OpenStack的能力,Kolla提供生产就绪的容器和部署工具,用于运行可扩展、快速、可靠的OpenStack云,并使用社区最佳实践升级。这些增强功能可以更轻松地管理基础设施、支持NFV中的原生云网络应用,以及轻权重控制平面功能,为运营商支持5G和IoT奠定基础。
  • XCI持续集成:能够与最新的上游开源项目集成。在OPNFV第四个版本Danube中持续集成/持续部署(CI/CD)集成工作的基础上,Euphrates在OPNFV、OpenStack、OpenDaylight和FD.io中引入了XCI集成CI/CD管道的实现。OPNFVC CI管道并不需要官方的稳定版本,而是集成了上游项目的最新代码,以更快地解决错误并验证功能。这减少了新功能反馈和错误修复的时间,大大提升了创新的速度。XCI还可实现多分布式支持,促进开发人员之间的联系。
  • 电信级功能。通过整合Calipso项目,运营商现在可以对其复杂的虚拟网络进行可视化操作。结合现有的Barometer and Doctor项目中的遥测增强功能,用户可以获得强大的服务保障架构。Euphrates还包括ARM架构的性能改进,以及FD.io的3层性能。此外,Euphrates通过Moon给用户带来新的安全的管理功能,持续改进了服务功能链(SFC)、FD.io、EVPN性能。Euphrates还将OVN网络虚拟化项目以及最新版本的其他上游项目整合在一起,为网络控制提供额外的选择。
  • 测试和集成功能增强:OPNFV集成和测试工作提供广泛的工具来测试NFV云、VNF和完整的网络服务方面取得了重大进展。包括Sample VNF在内的新项目提供对VIM/NFVI层的测试,以及接近实际应用工作负载的应用程序。NFVBench项目提供了端到端数据平台基准测试架构。

2 Euphrates 安装

2.1 配置要求

官方对于虚拟部署的配置要求如下

硬件 配置需求
1 Jumpserver 1个物理的节点用于安装Salt Master虚拟机和其他节点的虚拟机
CPU 最少一个插槽并且支持虚拟化
RAM 最小32G内存(与VNF的工作负载有关)
Disk 最小100G(SSD或者HDD(15k rpm最佳))

本文采用fuel部署脚本在一个服务器上部署虚拟POD,硬件配置及系统如下

  • Dell R720服务器,8核E5-2609,24G内存
  • ubuntu 16.06 server,8 cpu,24G内存,300G磁盘

本文中将称ubuntu 16.04系统为host。

2.1 部署前准备

2.1.1 CPU开启KVM虚拟化

本次安装使用的是在ESXI上安装的虚拟机,需要开启CPU的KVM虚拟化支持

2.1.2 虚拟机管理工具virsh

1
sudo apt-get -y install libvirt-bin

2017年12月12日更新:社区最新的代码中已经添加了libvirt的安装,将安装过程调整为先安装libvirt后做virsh list的检查,因此该步骤安装可以省略。

可选步骤:在国内为了加快部署进度,可以修改host上软件源将软件源替换为清华源

修改/etc/apt/source.list文件内容全部替换为

1
2
3
4
5
6
7
8
9
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

替换完成之后运行sudo apt-get update

2.2 fuel脚本部署Euphrates

下载x86版本fuel部署脚本并切换至5.02版本分支[3]

1
2
git clone https://git.opnfv.org/fuel
git checkout opnfv-5.0.2

2017年12月12日更新:由于XCI的特性,社区的代码实时更新,使用git fetch origin stable/euphrates && git checkout stable/euphrates切换至Euphrates的最新稳定版代码,然后再部署。

Note:最开始尝试部署时由于内存只有8G出现过未部署成功,因此需要适当削减部署时的配置,修改fuel/mcp/config/scenario/defaults-x86_64.yaml中ram的大小,以及mcp/config/scenario/virtual/os-nosdn-nofeature-noha.yaml中ram的大小,甚至可以减少一个计算节点cmp02

最简单的虚拟部署方式命令如下

1
ci/deploy.sh -D -p virtual_kvm -l localhost -s os-nosdn-nofeature-noha

使用deploy -h可以常看使用帮助,常用的参数说明如下

-b 指定部署配置的目录可以使用本地文件和远程链接,配置文件的路径格式为<base-uri>/labs/<lab-name>/<pod-name>.yaml,默认路径为./mcp/config
-l 指明使用配置目录下哪个实验室的配置文件,如-l lf为使用linux基金会实验室的配置文件。当使用虚拟部署时甚至-l参数都可以不使用
-p 指明使用实验室下的哪一个POD,如-p pod2
-s 指明使用哪种部署场景,如-s os-nosdn-nofeature-noha指使用openstack作为VIM,不采用sdn控制器,无其他特性,不使用ha。其他场景可以在fuel/mcp/config/scenario/下看到

使用ssh登录到生成的虚拟机中,登录虚拟机后使用sudo su命令即可切换成root用户。

1
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /var/lib/opnfv/mcp.rsa ubuntu@10.20.0.2

本次部署过程中并未指定节点的相关信息因此诸如控制节点、计算节点等信息是随机生成,在接下来的第二篇详细介绍。

2.3 dashboard的访问

由于部署的是虚拟环境,各网络都是内部网络(internal network)因此需要做路由转换才能够正常访问。

首先需要找到控制节点的IP通过登录到配置节点cfg01查找其他节点,使用arp -a命令可以看到其他节点的IP。

其它节点IP

登录到ctl01节点上查看文件/etc/apache2/conf-available/openstack-dashboard.conf可以得知dashboard页面的监听端口为8078。

访问dashboard的方式有两种,第一种是在host上做端口映射;第二种是通过putty、xshell等终端登录工具做隧道。不管哪种方式由于fuel在部署时防火墙的配置中多了一些选项需要先对iptables做一些修改。

首先在host上备份防火墙规则iptables-save > rule.v4,然后打开rule.v4修改-A FORWARD -d 10.20.0.0/24 -o mcpcontrol -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -d 10.20.0.0/24 -o mcpcontrol -j ACCEPT,随后重新加载防火墙规则iptables-restore rule.v4

2.3.1 隧道方式访问

打开终端的配置页面增加隧道条目,如图所示将本机的8000端口映射到控制节点的8078端口

隧道配置

随后在本机的浏览器输入127.0.0.1:8000即可访问dashboard,账户/密码:admin/opnfv_secret。密码存放在控制节点的/etc/keystone/keystone.conf文件中,为admin_token参数的值。

2.3.2 host端口映射方式访问

在host上的防火墙规则中添加一个端口映射,iptables -t nat -A PREROUTING -d 192.168.2.235 -p tcp --dport 8000 -j DNAT --to-destination 10.20.0.118:8078,随后直接访问host主机的8000端口即可登录dashboard。

参考链接

1)OPNFV官方WIKI

2)OPNFV 第五个版本发布

3)Euphrates安装手册

-------------本文结束感谢您的阅读-------------

版权声明

Louie's Blog by louie long is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Louie Long创作并维护的Louie's Blog博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Louie's Blog 博客( http://ylong.net.cn ),版权所有,侵权必究。
转载请注明作者和链接地址http://ylong.net.cn, 如对文章内容有疑问请联系邮箱( longyu805@163.com )。