版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99)

Install via devstack

#Enable tacker
BRANCH=master
enable_plugin heat https://git.openstack.org/openstack/heat $BRANCH
enable_plugin networking-sfc https://git.openstack.org/openstack/networking-sfc $BRANCH
enable_plugin barbican https://git.openstack.org/openstack/barbican $BRANCH
enable_plugin mistral https://git.openstack.org/openstack/mistral $BRANCH
enable_plugin tacker https://git.openstack.org/openstack/tacker $BRANCH
source openrc
export OS_USERNAME=admin
$ env |grep OS_
OS_PROJECT_DOMAIN_ID=default
OS_REGION_NAME=RegionOne
OS_USER_DOMAIN_ID=default
OS_PROJECT_NAME=demo
OS_IDENTITY_API_VERSION=3
OS_PASSWORD=password
OS_AUTH_TYPE=password
OS_AUTH_URL=http://172.16.1.1/identity
OS_USERNAME=admin
OS_TENANT_NAME=demo
OS_VOLUME_API_VERSION=2

Devstack会自动配置下列镜像与网络:

wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
$ glance image-list
+--------------------------------------+--------------------------+
| ID                                   | Name                     |
+--------------------------------------+--------------------------+
| 55444fe2-4b26-4908-ba1b-4c5e95bd0b83 | cirros-0.3.5-x86_64-disk |
| 26e711a9-d5c8-4991-a81d-5ebf5d2724d1 | OpenWRT                  |
+--------------------------------------+--------------------------+$ neutron net-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
| id                                   | name     | tenant_id                        | subnets                                               |
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
| 43f2cbec-367c-45e8-bf37-26e66366b9eb | private  | 1e99096c578a4b2786c6a44ffd6bed44 | ab7d15c8-03d5-429a-926f-2ba07d0fb77f 10.0.0.0/26      |
| 57c739b9-6e61-4795-a72f-29d9f3ee5ab2 | net0     | b9c12c1af30349b987fe9ab638659e48 | ab177e6d-94ea-4d93-bbc6-d9e4c2bba90e 10.10.0.0/24     |
| 5c6dc85e-9fd0-49f6-8fc2-3386709b4a09 | net_mgmt | b9c12c1af30349b987fe9ab638659e48 | 7525b4e6-1bff-4b68-a2c6-d5633a155a7f 192.168.120.0/24 |
| 63d88cd7-d540-446d-9538-4676b30cb494 | public   | b9c12c1af30349b987fe9ab638659e48 | 7a2873fc-607b-4f9e-bd94-7ed91a746553 192.168.101.0/24 |
| 95717e35-d3bc-4c6a-937c-b47c566a3666 | net1     | b9c12c1af30349b987fe9ab638659e48 | 0ecbc79b-c103-464f-ad59-2c7733c43e39 10.10.1.0/24     |
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

概念与步骤

Tacker中有这些概念:

  • VIM: 相当于OpenStack
  • VNFD: VNF Descriptor
  • VNF: Virtual Network Function
    所以依次需要:
  • 创建VIM
cat > vim_config.yaml << EOF
auth_url: 'http://172.16.1.1/identity'
username: 'nfv_user'
password: 'devstack'
project_name: 'nfv'
project_domain_name: 'Default'
user_domain_name: 'Default'
EOF
tacker vim-register --is-default --config-file vim_config.yaml test-vim
  • 创建vnfd
tacker vnfd-create --vnfd-file ./sample-vnfd.yaml sample-vnfd
tacker vnfd-list
  • 创建vnf
tacker vnf-create --vnfd-name sample-vnfd sample-vnf

TOSCA VNFD语法

VNFD和juju的yaml类似, 语法见下面sample-vnfd.yaml中的注释:

$ cat sample-vnfd.yaml
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Demo example
metadata:template_name: sample-tosca-vnfd
topology_template:# VDU1 represents a node provided by underlying VIMnode_templates:VDU1:type: tosca.nodes.nfv.VDU.Tacker# Define flavorcapabilities:nfv_compute:properties:num_cpus: 1mem_size: 512 MBdisk_size: 1 GB# Define imageproperties:image: cirros-0.3.5-x86_64-diskavailability_zone: nova# Tacker has two integrated mgmt_driver to configure metadata - noop and openwrtmgmt_driver: noopconfig: |param0: key1param1: key2# CP (Connection Point) represents a neutron port, CP1 is the name of this portCP1:type: tosca.nodes.nfv.CP.Tackerproperties:management: trueorder: 0anti_spoofing_protection: false# One side of this CP is connecting to VL1, another side is connection to VDU1 requirements:- virtualLink:node: VL1- virtualBinding:node: VDU1# VL (Virtual Link) represents a neutron networkVL1:type: tosca.nodes.nfv.VLproperties:network_name: net_mgmtvendor: Tacker

VNFD的语法结构图如下:

Tacker如何实现水平伸缩

需有水平伸缩相关的配置:

  # 定义策略,此节点与node_templates同级policies:# 此处定义了一个scale策略;SP1为自定义的名字- SP1:# scale策略的typetype: tosca.policy.tacker.Scaling# 定义了策略的详细内容properties:# 每次伸缩的数量increment: 1# 下一次操作的冷却时间cooldown: 0# 总量的下限min_instances: 1# 总量的上限max_instances: 3# 初始的数量default_instances: 2# 要伸缩的目标,vdu、cp均可伸缩targets: [VDU1]

然后运行下列命令进行伸缩:

tacker vnf-scale --vnf-name test_vnf --scaling-policy-name SP1 --scaling-type out  

上面伸缩配置和创建vim的配置一样会由Tacker最终转换为Heat模板,Heat模板最终再调用Neutron LBaaS v2来实现HA。点击这见我的另一博客。
而Juju的水平扩展则更为简单,直接运行如“juju add-unit nova-compute”之类的命令为自动增加节点,并且在这些节点之间添加haproxy+corosync的HA服务,点击这见我的另一博客。
如此说来,还是juju好用。

mgmt_driver

可以将一段脚本通过config参给VIM,然后tacker再ssh进这个VIM来执行这段配置。
这块juju则是直接ssh进VIM后自己该干嘛干嘛,灵活性更高。

Reference

[1] https://docs.openstack.org/tacker/latest/
[2] http://blog.csdn.net/tpiperatgod/article/details/56282617
[3] https://www.ibm.com/developerworks/cn/cloud/library/1511_zoupx_openstackheat/index.html
[4] https://www.ibm.com/developerworks/cn/cloud/library/cl-cloud-orchestration-technologies-trs/index.html

Play with Tacker(by quqi99)相关推荐

  1. Play with OSM (by quqi99)

    作者:张华 发表于:2020-05-08 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 对OSM的一般印象 各种社区推动着NFV和SDN技术背后软件堆栈的创新 ...

  2. 开发用的devstack (by quqi99)

    作者:张华 发表于:2014-05-15 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) 导入镜像 ...

  3. What's VPC (by quqi99)

    作者:张华  发表于:2014-12-09 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) VP ...

  4. (WIP)Start my first kernel journey (by quqi99)

    作者:张华  发表于:2016-03-22 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 在内 ...

  5. Thinkpad T440p安装Linux的种种问题(by quqi99)

    作者:张华  发表于:2014-05-08 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) Thi ...

  6. 什么是SSD TRIM (by quqi99)

    作者:张华  发表于:2016-03-23 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 普通 ...

  7. 使用Quagga测试Neutron BGP动态路由(by quqi99)

    作者:张华  发表于:2016-07-05 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 网络 ...

  8. try anbox or waydroid (by quqi99)

    作者:张华 发表于:2022-06-28 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 无论是安装anbox还是waydroid都失败了,记录一下. 里面首先 ...

  9. 为什么cinder-volume在删除volume时无反应 (by quqi99)

    版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (作者:张华 发表于:2018-08-30) 问题 cinder-volumes在删除volume时很慢, 并且 ...

最新文章

  1. android自定义弹框效果合集,android 自定义弹出框AlertDialog ,很炫的哦
  2. 知识图谱学习笔记-风控知识图谱设计
  3. VOC 灰度图 索引图
  4. (iOS开发总结)MVC模式
  5. LeetCode 1774. 最接近目标价格的甜点成本(DFS / 01背包)
  6. 微软MCITP系列课程(八)文件服务器及磁盘配额
  7. 匈牙利命名法为何被淘汰_被称为手表中“蓝血贵族”的百达翡丽,为何会受到如此的追捧?...
  8. java 货币格式 转换_java 货币 转换
  9. 《System语言详解》——4. 探
  10. OrCAD(一)简介、安装与基本使用
  11. 树莓派——CSI摄像头和USB摄像头的配置与调试
  12. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件
  13. 读书随笔《36岁, 半熟人生》
  14. TeamTalk的windows客户端流程
  15. mysql导入错误1148,将CSV导入MySQL表会返回错误#1148
  16. 神来之笔,阿里最新Spring Security源码手册牵动了多少人的心,拿走不谢
  17. 《名利场》:微软 “ 失落的十年”
  18. Qt制作漂亮个性化的界面
  19. 门禁系统远程无线联网解决方案
  20. matlab函数merge_MATLAB数据合并方法

热门文章

  1. mysql5.7免安装版本的配置+navicat的安装配置(超详细)
  2. arm linux考勤,基于ARM与Linux员工刷卡考勤系统毕业论文.doc
  3. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...
  4. gradle-7.2-all 百度网盘下载
  5. 读吴军的《硅谷之谜》有感
  6. android 自由浏览器下载地址,安卓浏览器现重大漏洞
  7. 一款好用的服务器——优豆云
  8. 如何将 wordfile 添加到 UltraEdit 或 UEStudio
  9. 英语学习资料[zz]
  10. 幼儿园开学教学课件PPT模板