Day27 MANO开源专案使用之OSM-建立篇

今天我来讲如何使用osm在kubernetes建立VNF。如果有想要在详细的了解OSM的话可以於他们官方文件做查询。

加入丛集

建立VIM account

name、user、password、type都可以自己设定,而url的localhost後带入的值则是与type一样

osm vim-create --name demo --user u --password p --tenant p --account_type dummy --auth_url http://localhost/dummy

或是使用UI加入

加入VIM

将本身的kubernetes加入进来(如若想加入其他丛集则改变config内容为其他丛集的kubernetes)

osm k8scluster-add cluster --creds .kube/config --vim demo --k8s-nets '{k8s_net1: null}' --version "v1.15.9" --description="Isolated K8s cluster in demo"

或是用UI做新增

建立repo

没错,在OSM使用kubernetes建立VNF的部分,他将会交由helm帮他做一个处理,因此若要使用自己的VNF的话,则需要将自己的helm repo加入到OSM中使用。
repo name的部分要记住之後做上传样板时会使用到

#osm repo-add --type helm-chart --description "<随意内容>" <repo name> <repo url>
osm repo-add --type helm-chart --description "Bitnami repo" bitnami https://charts.bitnami.com/bitnami

或是使用UI做新增

osm repo-list
# osm repo-show <repo name>
osm repo-show bitnami

设计样板

当你完成了建立丛集,那麽我们就来启动kubernetes的VNF吧,在OSM中这被称为KNF。
首先我的资料结构如下:

.
├── demo-knf
│   └── demo_vnfd.yaml
├── demo-knf.tar.gz
├── demo-ns
│   ├── demo_nsd.yaml
│   └── params
│       └── params.yaml
└── demo-ns.tar.gz

描述KNF相关的描述档案:
demo_vnfd.yaml

vnfd:
  description: KNF with single KDU using a helm-chart for demo
  df:
  - id: default-df
  ext-cpd:
  - id: mgmt-ext
    k8s-cluster-net: mgmtnet
  id: demo_knf
  k8s-cluster:
    nets:
    - id: mgmtnet
  kdu:
  - name: job
    helm-chart: cetic/job
  mgmt-cp: mgmt-ext
  product-name: demo_knf
  provider: imac
  version: '0.1.0'

描述Network Slicing(NS)相关的描述档案:
demo_nsd.yaml

nsd:
  nsd:
  - description: NS consisting of a single KNF user plane connected to mgmt network
    designer: imac
    df:
    - id: default-df
      vnf-profile:
      - id: demonsd
        virtual-link-connectivity:
        - constituent-cpd-id:
          - constituent-base-element-id: demonsd
            constituent-cpd-id: mgmt-ext
          virtual-link-profile-id: mgmtnet
        vnfd-id: demo_knf
    id: demo_ns
    name: demo_ns
    version: '1.0'
    virtual-link-desc:
    - id: mgmtnet
      mgmt-network: 'true'
    vnfd-id:
    - demo_knf

params.yaml

vld:
- name: mgmtnet
  vim-network-name: internal
additionalParamsForVnf:
- member-vnf-index: demonsd
  additionalParamsForKdu:
  - kdu_name: job
    additionalParams:
      # replicaCount: 2  
      # service.loadBalancerIP: '172.21.251.X' # MetalLB IP Address
      # service.type: NodePort
      service:
        type: NodePort
        # loadBalancerIP: '172.21.251.X' # MetalLB IP Address
      adminPassword: osm4u
      configPassword: osm4u
      env:
        LDAP_ORGANISATION: "Example Inc."
        LDAP_DOMAIN: "example.org"
        LDAP_BACKEND: "hdb"
        LDAP_TLS: "true"
        LDAP_TLS_ENFORCE: "false"
        LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"

最後将两个资料夹做压缩动作,可以看我的资料结构的部分。

上传档案

上传VNF和NS可以使用UI或是command上传

command

osm nfpkg-create demo-knf.tar.gz
osm nfpkg-create demo-ns.tar.gz

UI


实例化NS


实例化後的结果

首先先到UI上观看实例化的成果

在来我们到丛集上观看pod的资讯

kubectl get pod -A
NAMESPACE                              NAME                                          READY   STATUS      RESTARTS   AGE
c9502841-6515-4d17-9a76-48e14307999a   cetic-job-0009045695-job-glclr                0/1     Completed   0          18s

我们可以看到我们的NS有成功地被布署上去了,那麽这次的OSM教学就到今天了。


<<:  表单处理 Object 里的 Array

>>:  day27 coroutine和任务的爱情长跑,application和workManager

为了转生而点技能-JavaScript,难题纪录(二)隐式转换规则及===、==

隐式转换规则 前言: 涉及隐式转换最多的两个运算子 + 和 ==。 +运算子即可数字相加,也可以字串...

Day34 - Windows 提权(5)-WinPEAS

WinPEAS WinPEAS 提供许多脚本可以确认目标系统为 Windows 中是否存在弱点以及不...

Day 20 公共资料竞赛,「区域E资讯」设计线稿优化分享

ps. 印度气象局结束ㄌ(我不想弄ㄌ),只能来发 UIUX 小日记 来找设计师一起 side pro...

【Day 15】 为何要进行资安攻击的分析

大家早安~ 接下来就是到了我们实作二 - 资安攻击分析 on AWS,在那之前想先跟大家讨论 Q:『...

Day08:【TypeScript 学起来】物件型别 Object Types : object

https://bit.ly/2XuVqBJ (这篇必看,不分享对不起自己) //原来南无观世音菩...