Applications d'hébergement CISCO IOS XR

Hébergement d'applications sur IOS XR
Cette section explique les différents types d'hébergement d'applications et montre comment une application simple peut être hébergée de manière native ou dans un conteneur tiers sur IOS XR.
- Hébergement d'applications à l'aide de conteneurs Docker.
- Hébergement d'applications de conteneur basé sur Docker.
Hébergement d'applications à l'aide de conteneurs Docker
L'hébergement d'applications sur IOS XR prend en charge les conteneurs Docker. Vous pouvez créer votre propre conteneur sur IOS XR à l'aide de Docker et héberger des applications dans le conteneur. Les applications peuvent être développées à l'aide de n'importe quelle distribution Linux. Ceci est bien adapté aux applications qui utilisent des bibliothèques système différentes de celles fournies par la racine IOS XR. file système. Cisco NCS 540 prend uniquement en charge l'hébergement d'applications basé sur Docker.
Hébergement d'applications de conteneur basé sur Docker
Cette section présente le concept d'hébergement d'applications conteneurs et décrit son flux de travail. L'hébergement d'applications conteneurisées permet aux applications d'être hébergées dans leur propre environnement et espace de processus (espace de noms) au sein d'un conteneur Linux sur Cisco IOS XR. Le développeur d'applications a un contrôle total sur l'environnement de développement d'applications et peut utiliser la distribution Linux de son choix. Les applications sont isolées des processus du plan de contrôle IOS XR ; pourtant, ils peuvent se connecter à des réseaux extérieurs à XR via les interfaces XR GigE. Les applications peuvent également accéder facilement aux informations locales file systèmes sur IOS XR.
Utilisation de Docker pour héberger des applications sur Cisco IOS XR
Docker est un conteneur utilisé pour héberger des applications sur Cisco IOS XR. Docker fournit une isolation pour les processus d'application des processus hôtes sous-jacents sur XR en utilisant les espaces de noms réseau Linux.
Besoin de Docker sur Cisco IOS XR
Docker est en train de devenir le modèle de packaging préféré de l'industrie pour les applications dans l'espace de virtualisation. Docker constitue la base de l'automatisation de la gestion du cycle de vie des applications. Docker suit une approche en couches qui consiste en une image de base en bas qui prend en charge les couches d'applications en haut. Les images de base sont disponibles publiquement dans un référentiel, en fonction du type d'application que vous souhaitez installer par-dessus. Vous pouvez manipuler les images Docker à l'aide de l'index et du registre Docker. Docker fournit un flux de travail de type Git pour développer des applications conteneurisées et prend en charge le mécanisme de « mise à jour fine », dans lequel seule la différence dans le code source est mise à jour, ce qui conduit à des mises à niveau plus rapides. Docker fournit également le mécanisme de « téléchargement léger », grâce auquel les applications les plus récentes sont téléchargées plus rapidement en raison du partage de couches Docker de base communes entre plusieurs conteneurs Docker. Le partage des couches Docker entre plusieurs conteneurs Docker entraîne une empreinte moindre des conteneurs Docker sur XR.
Architecture Docker sur Cisco IOS XR
La figure suivante illustre l'architecture Docker sur IOS XR.

Les binaires d'application pour les applications à héberger sont installés dans le conteneur Docker.
Hébergement d'applications dans des conteneurs Docker
La figure suivante illustre le flux de travail pour l'hébergement d'applications dans des conteneurs Docker sur IOS XR.

- Le docker file dans le référentiel source est utilisé pour construire le binaire de l'application file sur votre machine hôte (version du moteur Docker).
- Le binaire de l'application file est poussé dans le registre d’images Docker.
- Le binaire de l'application file est extrait du registre d'images Docker et copié dans le conteneur Docker sur XR (hôte cible du moteur Docker).
- L'application est créée et hébergée dans le conteneur Docker sur XR.
Mise à jour des applications dans les conteneurs Docker
La figure suivante illustre le flux de travail de mise à jour des applications hébergées dans des conteneurs Docker.
- La mise à jour de l'application est générée en tant que mise à jour des bibliothèques de base file (mise à jour delta file) et poussé vers le registre d'images Docker.
- La mise à jour delta file (contenant uniquement la différence dans le code de l'application) est extrait du registre d'images Docker et copié dans les conteneurs Docker sur XR (hôte cible du moteur Docker).
- Les conteneurs Docker sont redémarrés avec la mise à jour delta file.
Hébergement de TPA à l'aide d'Application Manager
Tableau 1 : Tableau de l'historique des fonctionnalités
| Fonctionnalité Nom | Informations sur la version | Fonctionnalité Description |
| Service démon Docker à la demande | Version 7.5.1 | À partir de cette version, le
Le service démon Docker démarre sur un routeur uniquement si vous configurez une application d'hébergement tierce à l'aide du gestionnaire d'applications commande. Un tel service à la demande optimise les ressources du système d'exploitation telles que le processeur, la mémoire et l'alimentation. Dans les versions antérieures, le service démon Docker démarrait automatiquement lors du démarrage du routeur. |
Dans les versions précédentes, les applications étaient hébergées et contrôlées par les commandes Docker. Ces commandes Docker ont été exécutées dans le shell bash du noyau qui hébergeait également le logiciel Cisco IOS XR. Avec l'introduction d'Application Manager, il est désormais possible de gérer l'hébergement d'applications tierces et leur fonctionnement via les CLI Cisco IOS XR. Grâce à cette fonctionnalité, toutes les applications tierces activées peuvent redémarrer automatiquement après un rechargement de routeur ou un basculement RP. Ce redémarrage automatique des applications assure un fonctionnement transparent des applications hébergées.
Commandes prises en charge sur le gestionnaire d'applications
Pour chaque commande ou configuration du gestionnaire d'applications exécutée, le gestionnaire d'applications effectue l'action demandée en s'interfaçant avec le démon Docker via le socket Docker. Le tableau suivant répertorie les fonctionnalités du conteneur Docker, les commandes Docker génériques utilisées dans les versions précédentes et ses commandes de gestionnaire d'applications équivalentes qui peuvent désormais être utilisées :
| Fonctionnalité | Commandes Docker génériques | Application Directeur Commandes |
| Installer l'application RPM | NA | RPM d'installation du paquet Router#appmgr
nom_image-0.1.0-XR_7.3.1.x86_64.rpm |
| Configurer et activer l'application | • Charger l'image – [xr-vm_node0_RP0_CPU0:~]$dockerload -i /tmp/nom_image.goudron
• Vérifiez l'image sur le routeur – xr-vm_node0_RP0_CPU0:~]$docker images ls • Créer un conteneur sur l'image – [xr-vm_node0_RP0_CPU0:~]$docker créer nom_image |
Routeur#config
Routeur(config)#appmgr Routeur(config-appmgr)#application nom_de_l'application Routeur (config-application) #activer la source du docker de type nom_image docker-run-opts "-net = hôte" docker-run-cmd "iperf3 -s -d" |
| • Démarrer le conteneur – [xr-vm_node0_RP0_CPU0:~]$docker start mon_conteneur_id | Routeur (config-application)#commit | |
| View la liste, les statistiques, les logs et les détails de l'application
récipient |
• Liste des images
-[xr-vm_node0_RP0_CPU0:~]$docker images ls • Répertorier les conteneurs – [xr-vm_node0_RP0_CPU0:~]$dockerps• Statistiques -[xr-vm_node0_RP0_CPU0:~]Statistiques $docker |
Routeur#show appmgr source-table
Routeur#afficher le nom de l'application appmgr nom_de_l'application résumé des informations Routeur#afficher le nom de l'application appmgr nom_de_l'application détail des informations Routeur#afficher le nom de l'application appmgr nom_de_l'application statistiques |
| • Journaux
-[xr-vm_node0_RP0_CPU0:~]$journaux docker |
Routeur#afficher la table d'application appmgr
Routeur#afficher le nom de l'application appmgr nom_de_l'application journaux |
| Fonctionnalité | Commandes Docker génériques | Application Directeur Commandes |
| Exécutez un nouveau | • Exécuter – [xr-vm_node0_RP0_CPU0:~]$docker exec -it mon_conteneur_id | Exécuteur de l'application Router#appmgr |
| commande
à l'intérieur d'un |
nom nom_de_l'application docker-exec-cmd | |
| en cours d'exécution | ||
| récipient | ||
| Arrêter le conteneur d'application | • Arrêter le conteneur – [xr-vm_node0_RP0_CPU0:~]$docker stop mon_conteneur_id | Nom de l'arrêt de l'application Router#appmgr nom_de_l'application |
| Tuez le conteneur d'application | • Conteneur de suppression – [xr-vm_node0_RP0_CPU0:~]$docker kill mon_conteneur_id | Nom de suppression de l'application Router#appmgr nom_de_l'application |
| Démarrer le conteneur d'application | • Démarrer le conteneur – [xr-vm_node0_RP0_CPU0:~]$docker start mon_conteneur_id | Nom de démarrage de l'application Router#appmgr nom_de_l'application |
| Désactiver l'application | • Arrêter le conteneur – [xr-vm_node0_RP0_CPU0:~]$docker stop mon_conteneur_id | Routeur#configurer
Routeur (config) #aucune application appmgr nom_de_l'application |
| • Supprimer le conteneur – [xr-vm_node0_RP0_CPU0:~]$docker rm mon_conteneur_id | Routeur (config)#commit | |
| • Supprimer l'image – [xr-vm_node0_RP0_CPU0:~]$docker rmi nom_image | ||
| Désinstaller l'image de l'application/RPM | • Image de désinstallation – [xr-vm_node0_RP0_CPU0:~]$désinstallation de l'application Docker nom_image | Package de désinstallation du package Router#appmgr
nom_image-0.1.0-XR_7.3.1.x86_64 |
Note: L'utilisation des commandes du gestionnaire d'applications est expliquée dans la section « Hébergement d'iPerf dans des conteneurs Docker pour surveiller les performances du réseau à l'aide d'Application Manager ».
Configuration d'un Docker avec plusieurs VRF
Cette section décrit comment configurer un Docker avec plusieurs VRF sur Cisco IOS XR. Pour plus d’informations sur la configuration de plusieurs VRF, consultez la rubrique Configuration de plusieurs VRF pour l’hébergement d’applications.
Configuration
Utilisez les étapes suivantes pour créer et déployer un Docker multi-VRF sur XR.
- Créez un Docker multi-VRF avec les privilèges NET_ADMIN et SYS_ADMIN.
Dans l'exemple suivantample, un conteneur Docker contenant trois VRF (jaune, bleu et vert) est lancé. Le EXample suppose qu'une précédente image Docker « multivrfimage » a été installée à l'aide de la commande d'installation du package appmgr.
Note:- Le montage de l'intégralité du contenu de /var/run/netns de l'hôte vers Docker n'est pas recommandé, car cela monte le contenu des netns correspondant à XR et au plan d'administration système dans le Docker.
- Vous ne devez pas supprimer un VRF de Cisco IOS XR lorsqu'il est utilisé dans un Docker. Si un ou plusieurs VRF sont supprimés de XR, le Docker multi-VRF ne peut pas être lancé
- Vérifiez si le Docker multi-VRF a été chargé avec succès.

- Connectez-vous au conteneur Docker multi-VRF en exécutant la commande suivante.
Routeur # nom d'exécution de l'application appmgr multivrfcontainer1 docker-exec-cmd /bin/bash/
Par défaut, le Docker est chargé dans l'espace de noms global-vrf sur Cisco IOS XR. - Vérifiez si les plusieurs VRF sont accessibles depuis le Docker.


Vous avez lancé avec succès un Docker multi-VRF sur Cisco IOS XR.
Documents / Ressources
![]() |
Applications d'hébergement CISCO IOS XR [pdf] Manuel de l'utilisateur Applications d'hébergement IOS XR, IOS XR, applications d'hébergement, applications |

