Play with OSM (by quqi99)

作者:張華 發表於:2020-05-08
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本版權聲明

對OSM的一般印象

各種社區推動着NFV和SDN技術背後軟件堆棧的創新,如OpenStack、ONAP、ETSI Open Source MANO(OSM)、OPNFV、OpenDaylight、Open Networking Foundation(ONF)、Open Contrail、Open Baron、On.Lab、 CORD、Kubernetes、ONOS和Open-O。其中OpenStack與OSM是部署NFV的兩大支柱.

  • 各種OpenStack項目(包括Tacker、Neutron、Nova、Astara、Congress、Mistral和Senlin)能夠管理NFV環境的虛擬化基礎設施組件。例如,Tacker用於構建通用VNF管理器(VNFM)和NFV Orchestrator(NFVO),這有助於在NFV基礎設施內部署和運維VNF。此外,集成OpenStack項目爲NFV基礎設施引入了各種功能,包括大頁面、CPU Pinning、NUMA拓撲和SR-IOV等性能功能以及服務功能鏈、網絡切片、可擴展性、高可用性、彈性和多站點支持。用OpenStack實施NFV環境的電信服務提供商和企業包括AT&T、中國移動、SK電信、愛立信、德國電信、康卡斯特和彭博。類似於OpenStack官方
  • Tacker(https://blog.csdn.net/quqi99/article/details/78473137)可以編排VIM與VNF, Open Source MANO(OSM,OPNFV和ONAP都同屬於Linux基金會, ETSI ISG NFV和OSM都屬於ETSI,在ETSI ISG NFV中活躍的成員包括:NTT Docomo,KDDI,KT,中國聯通,德國電信,Telefonica,意大利電信,BT,Orange,AT&T,Verizon,Bell Canada和Rogers。其中也有很多成員積極參與OPNFV和ONAP。)也可以做類似的事,前者Tacker基於TOSCA VNFD語法,後者OSM則一般採用ssh的方式編排VIM與VNF)

OSM的一般用法見: https://osm.etsi.org/docs/user-guide/01-quickstart.html, 和Tacker也類似:

  • 首先需要部署OSM自身的服務(lcm, mon, nbi, pol, ro, keystone, kafka, mongo, mysql, zookeeper, prometheus etc) OSM官方默認將OSM服務部署在Docker Swarm中,也可以部署在k8s集羣中, Ubuntu有對應的charm來部署這些OSM自身的服務(A minimal charmed OSM : https://jaas.ai/osm/bundle, HA charmed OSM - https://jaas.ai/osm-ha/bundle),既然有charm,當然通過juju就可以將這些服務部署到裸機,虛機,lxd,k8s上,這裏也描述瞭如何將OSM部署到microk8s上(https://jaas.ai/osm/bundle
  • 在OSM配置訪問VIM(eg: OpenStack, VMWare vCloud Direcor, AWS, Azure)的帳號, eg: osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack
  • 部署VNF, 官網中是以cirros_vnf爲例的 如果使用了charmed osm, vnf是通過proxy
    charm寫的,例子見:https://blog.csdn.net/quqi99/article/details/103175749

實驗 - MicroK8s + MicroStack + Charmed OSM

Ubuntu 18.04 LTS Operating System,
16 GB of RAM,
4 CPUs,
50 GB of free storage space.

#Before you start
sudo snap install juju --classic
sudo snap install osmclient --beta
sudo snap connect osmclient:juju-client-observe
sudo snap connect osmclient:ssh-public-keys 
sudo snap connect osmclient:network-control
juju bootstrap localhost osm-lxd

#Setting up MicroK8s
sudo snap install microk8s --classic
sudo usermod -a -G microk8s $USER 
newgrp microk8s
microk8s.status --wait-ready
microk8s.enable storage dns
microk8s.kubectl cluster-info

#Setting up MicroStack
sudo snap install microstack --classic --beta
sudo microstack.init --auto
wget https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
microstack.openstack image create --public --disk-format qcow2 --container-format bare --file ubuntu-16.04-server-cloudimg-amd64-disk1.img ubuntu1604
microstack.openstack server list

#Setting up Charmed OSM
juju bootstrap microk8s osm-k8s
juju add-model osm
osmclient.overlay
juju deploy osm --overlay vca-overlay.yaml
juju status
export OSM_HOSTNAME=`juju status nbi-k8s | grep kubernetes | awk '{print $8}'`
echo "export OSM_HOSTNAME=$OSM_HOSTNAME" >> ~/.bashrc
osmclient.osm ns-list

#Add MicroStack as a VIM
osmclient.osm vim-create --name microstack \
      --user admin \
      --password keystone \
      --auth_url http://10.20.20.1:5000/v3 \
      --tenant admin \
      --account_type openstack \
      --config='{security_groups: default,
                 keypair: microstack,
                 project_name: admin,
                 user_domain_name: default,
                 region_name: microstack,
                 insecure: True,
                 availability_zone: nova,
                 version: 3,
                 use_floating_ip: true}'

#Onboarding VNFs
wget http://bit.ly/basic_vnfd -O hackfest_basic_vnf.tar.gz
wget http://bit.ly/basic_nsd -O hackfest_basic_ns.tar.gz
osmclient.osm upload-package hackfest_basic_vnf.tar.gz
osmclient.osm upload-package hackfest_basic_ns.tar.gz
osmclient.osm nsd-list
osmclient.osm vnfd-list
osmclient.osm ns-create --ns_name hackfest_basic_ns --nsd_name hackfest_basic-ns --vim_account microstack --config '{vld: [ { name: mgmtnet, vim-network-name: test } ] }'
osmclient.osm ns-list
IP=`microstack.openstack server list -c Networks -f value --name basic | awk '{ print $2 }'`
ssh ubuntu@$IP -i .ssh/id_microstack

#Enable/Disable the Development Stack
#microk8s.disable dns
#sudo snap disable microstack
#sudo snap disable microk8s
sudo snap enable microstack; sleep 60
sudo snap enable microk8s
microk8s.status --wait-ready
microk8s.enable dns
microstack.openstack server list

#use multipass in win10 - https://multipass.run/#install
#enable hyper-v server and start hypver-v services
multipass find
multipass launch --name ubuntu  #note: need to kill wall
multipass exec ubuntu -- lsb_release -a
multipass list

Reference

[1] https://jaas.ai/tutorials/charmed-osm-get-started

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章