DEV Community

Karim
Karim

Posted on • Originally published at Medium on

NFV/Edge : Déploiement de Charmed OSM (Open Source MANO) via Juju, MicroStack et MicroK8s ...

Canonical a lancé la distribution Charmed OSM (Open Source MANO). OSM est une implémentation open source de NFV (Network functions virtualization) MANO (Management and Orchestration) défini par l’Institut Européen des normes de télécommunications ETSI :

L’initiative NFV pour “Network Functions Virtualization” consiste à virtualiser les services et fonctions réseau. Son objectif consiste à dissocier les fonctions réseau des équipements matériels qui leur sont dédiés tels que routeurs, pare-feu et équilibreurs de charge pour héberger les services qu’elles fournissent sur des machines virtuelles (VM) …

OSM

La distribution Charmed OSM de Canonical ainsi développée fournit aux opérateurs et fournisseurs de services télécoms (TSP) une approche « générique » de la gestion/orchestration de fonctions réseau en tant qu’instances virtualisées. Charmed OSM est une distribution OSM pure upstream.

Test du déploiement de Charmed OSM avec le lancement d’une instance de type Ev3 dans Azure (qui permet la virtualisation imbriquée) :

Je commence par installer le client Juju et OSM à partir du snap store dans mon instance Ubuntu 18.04 LTS :

sudo snap install juju --classic
sudo snap install osmclient
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

et je procède à l’installation de MicroK8s. Pour rappel, dans MicroK8s tous les services Kubernetes et les bibliothèques sont regroupés dans une seule image qui peuvent être installés sur 42 distributions Linux, Windows et Mac OS. MicroK8s est utilisé pour héberger son installation d’OSM :

sudo snap install microk8s --classic
sudo usermod -a -G microk8s $USER 
newgrp microk8s
microk8s.status --wait-ready

Une fois terminé, exécution des commandes pour définir les autorisations requises et activer les plugins de stockage et de DNS dans MicroK8s :

microk8s.enable storage dns

Le cluster Kubernetes est actif et opérationnel. Il est alors possible d’initer le lancement de MicroStack. MicroStack comprend tous les composants clés d’OpenStack à savoir : Keystone, Nova, Neutron, Glance, et évolue extrêmement rapidement. MicroStack sera utilisé ici comme un Virtual Infrastructure Manager (VIM) pour OSM :


sudo snap install microstack --classic --beta
sudo microstack.init

Mon installation d’OpenStack est active et opérationnelle :

Afin de configurer MicroStack pour qu’il puisse être utilisé comme VIM pour Charmed OSM, j’ajoute une image Ubuntu dans Glance :

Je peux déployer un autre contrôleur via Juju sur MicroK8s qui accueillera l’installation de Charmed OSM :

Lancement d’un modèle pour le déploiement d’OSM dans MicroK8s :

qui induit l’exécution de certaines commandes via un fichier de superposition (vca-overlay.yaml) pour le déploiement de Charmed OSM :

juju add-model osm
juju deploy osm --overlay vca-overlay.yaml

lancement du déploiement de Charmed OSM avec Juju :

Après un certain laps de temps, le déploiement est terminé :

On peut alors commencer à interagir avec l’installation de Charmed OSM en utilisant la commande osmclient.osm. On peut également accéder à l’interface web de Charmed OSM :

Ajout de MicroStack comme VIM à Charmed OSM :

osmclient.osm vim-create --name microstack \
      --user admin \
      --password keystone \
      --auth\_url http://<INSTANCE IP>: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}'

Cela devient visible dans le dashboard d’OSM :

À ce stade, Charmed OSM est déployé dans MicroK8s et MicroStack est configuré comme un VIM. Je peux déployer un service réseau de base comme premier test via un exemple de NSD (Network Service Descriptor) et de VNFD (Virtual Network Function Descriptor) :

que je charge dans OSM :

visualisables dans le détail au sein du dashboard d’OSM :

Maintenant que les paquets ont été téléchargés, je peux créer un service réseau de base :

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 }]
                            }'

Une instance Ubuntu est alors créé pour ce service réseau dans MicroStack :

Et je peux m’y connecter en SSH :

IP=`microstack.openstack server list -c Networks -f value --name basic | awk '{ print $2 }'`
ssh ubuntu@$IP -i .ssh/id\_microstack

Autre test avec un service réseau plus complexe via le chargement de ces deux paquets :

wget http://bit.ly/simplecharm\_vnfd -O hackfest\_simplecharm\_vnf.tar.gz
wget http://bit.ly/simplecharm\_nsd -O hackfest\_simplecharm\_ns.tar.gz
osmclient.osm upload-package hackfest\_simplecharm\_vnf.tar.gz
osmclient.osm upload-package hackfest\_simplecharm\_ns.tar.gz

Création de ce nouveau service réseau :

osmclient.osm ns-create --ns\_name hackfest\_simplecharm\_ns \
                          --nsd\_name hackfest\_simplecharm-ns \
                          --vim\_account microstack \
                          --config '{
                              vld: [{ name: mgmtnet, vim-network-name: test }]
                            }'

qui engendre la création d’une nouvelle instance Ubuntu :

L’action disponible dans ce service réseau consiste à créer un fichier à l’intérieur du VNF (fonction réseau virtuelle) au chemin spécifié par le paramètre _filename _:

Récapitulatif dans le dashboard d’OSM :

et exécution de l’action :

osmclient.osm ns-action --action\_name touch \
                          --vnf\_name 1 \
                          --params '{filename: /home/ubuntu/touched}' \
                          hackfest\_simplecharm\_ns

et on vérifie son exécution en se connectant par SSH à l’instance Ubuntu créée :

Charmed OSM fournit du monitoring via Grafana et Prometheus :

Ce mode d’installation pourrait peut être convenir en mode Edge Computing mais pour un mode orienté production, on peut utiliser MaaS (Metal as a Servie) et les distributions complètes Charmed Openstack et Charmed Kubernetes :

Charmed OSM, NFV management and orchestration platform

Canonical fournit en effet une pile de production comprenant:

  • MAAS : pour l’approvisionnement en Bare Metal
  • Charmed Kubernetes : cluster Kubernetes hautement disponible et évolutif à des fins d’hébergement de Charmed OSM
  • Charmed OpenStack : un cluster OpenStack hautement disponible et évolutif qui sera utilisé comme VIM
  • Charmed OSM HA bundle : un cluster MANO Open Source hautement disponible et évolutif

Pour aller plus loin :

Top comments (1)

Collapse
 
hajourahajoura profile image
hajourahajoura

bonjour svp je suis entrain d installer microstack sur mon mac ms je trouve ce prb tous les etapes ca passe bien ms le prb au niveau de la connection au dashboard