Applicazioni di hosting CISCO IOS XR

Hosting Applicazioni nantu à IOS XR
Questa sezione spiega i sfarenti tippi di hosting di l'applicazioni, è mostra cumu una applicazione simplice pò esse ospitata nativamente o in un containeru di terzu in IOS XR.
- Hosting di l'applicazioni Utilizendu Docker Containers.
- Hosting di l'applicazioni di u containeru basatu in Docker.
Hosting di l'applicazioni Utilizendu Docker Containers
L'ospitu di l'applicazioni in IOS XR supporta i cuntenituri docker. Pudete creà u vostru propiu cuntainer in IOS XR usendu docker, è l'applicazioni d'ospiti in u cuntainer. L'applicazioni ponu esse sviluppate cù qualsiasi distribuzione Linux. Questu hè bè adattatu per l'applicazioni chì utilizanu biblioteche di sistema chì sò diffirenti di quelli furniti da a radica IOS XR file sistema. Cisco NCS 540 supporta solu l'ospitu di l'applicazioni basate in docker.
Hosting di l'applicazioni di u containeru basatu in Docker
Questa sezione introduce u cuncettu di l'ospitu di l'applicazioni di containeru è descrive u so flussu di travagliu. L'ospitu di l'applicazioni di u containeru permette à l'applicazioni di esse ospitate in u so propiu ambiente è u spaziu di prucessu (spaziu di nomi) in un containeru Linux in Cisco IOS XR. U sviluppatore di l'applicazioni hà un cuntrollu tutale di l'ambiente di sviluppu di l'applicazione, è pò utilizà una distribuzione Linux di scelta. L'applicazioni sò isolate da i prucessi di u pianu di cuntrollu IOS XR; ancora, ponu cunnette à e rete fora di XR attraversu l'interfacce XR GigE. L'applicazioni ponu ancu accede facilmente à u locu file sistemi nantu à IOS XR.
Utilizà Docker per Hosting Applications in Cisco IOS XR
Docker hè un containeru utilizatu per l'ospitu di l'applicazioni in Cisco IOS XR. Docker furnisce l'isolamentu per i prucessi di l'applicazione da i prucessi di l'ospiti sottostanti in XR utilizendu spazii di nomi di rete Linux.
Necessità di Docker in Cisco IOS XR
Docker hè diventatu u mudellu di imballaggio preferitu da l'industria per l'applicazioni in u spaziu di virtualizazione. Docker furnisce a basa per l'automatizazione di a gestione di u ciclu di vita di l'applicazioni. Docker segue un approcciu stratificato chì hè custituitu da una maghjina di basa à u fondu chì sustene strati di applicazioni in cima. L'imaghjini di basa sò dispunibuli publicamente in un repository, secondu u tipu d'applicazione chì vulete installà in cima. Pudete manipulà l'imaghjini docker usendu l'indexu docker è u registru. Docker furnisce un flussu di travagliu simile à git per u sviluppu di l'applicazioni di cuntainer è sustene u mecanismu di "aggiornamentu sottile", induve solu a diferenza di u codice fonte hè aghjurnata, chì porta à aghjurnamenti più veloci. Docker furnisce ancu u mecanismu di "scaricamentu sottile", induve l'applicazioni più recenti sò scaricate più rapidamente per via di a spartera di strati di docker di basa cumuni trà parechji cuntenituri docker. A spartera di strati di docker trà parechji cuntenituri docker porta à una impronta più bassa per i cuntenituri docker in XR.
Docker Architecture nantu à Cisco IOS XR
A figura seguente illustra l'architettura docker in IOS XR.

I binari di l'applicazioni per l'applicazioni da esse ospitate sò stallati in u containeru docker.
Hosting Applications in Docker Containers
A figura seguente illustra u flussu di travagliu per l'ospitu di l'applicazioni in cuntenituri Docker in IOS XR.

- U docker file in u repositoriu fonte hè utilizatu per custruisce u binariu di l'applicazione file nant'à u vostru (docker engine build) host machine.
- L'applicazione binaria file hè imbuttatu in u registru di l'imagine docker.
- L'applicazione binaria file hè tiratu da u registru di l'imaghjini docker è copiatu à u cuntainer docker in XR (docker engine target host).
- L'applicazione hè custruita è ospitata in u containeru docker in XR.
Aghjurnà l'applicazioni in Docker Containers
A figura seguente illustra u flussu di travagliu per l'aghjurnamentu di l'applicazioni ospitate in cuntenituri docker.
- L'aghjurnamentu di l'applicazione hè generatu cum'è un aghjurnamentu di libbre di basa file (aghjurnamentu di delta file) è imbuttatu à u registru di l'imagine docker.
- L'aghjurnamentu di Delta file (contene solu a diferenza in u codice di l'applicazione) hè tiratu da u registru di l'imaghjini docker è copiatu à i cuntenituri docker in XR (docker engine target host).
- I cuntenituri docker sò riavviati cù l'aghjurnamentu di delta file.
Hosting di TPA Utilizendu Application Manager
Tabella 1: Tabella di storia di funzioni
| Feature Nome | L'infurmazione di liberazione | Feature Descrizzione |
| On-Demand Docker Daemon Service | Versione 7.5.1 | Da questa liberazione in avanti, u
U serviziu di demone Docker principia nantu à un router solu s'ellu cunfigurate una applicazione di hosting di terzu cù u appmgr cumanda. Un tali serviziu nantu à a dumanda ottimizza e risorse di u sistema operatore cum'è CPU, memoria è putenza. In versioni precedenti, u serviziu daemon Docker hà iniziatu automaticamente durante l'avviamentu di u router. |
In versioni precedenti, l'applicazioni sò stati ospitati è cuntrullati da i cumandamenti Docker. Questi cumandamenti Docker sò stati eseguiti in u bash shell di u Kernel chì hà ancu ospitatu u software Cisco IOS XR. Cù l'intruduzioni di l'Application Manager, hè avà pussibule di gestisce l'ospitu di l'applicazioni di terzu è u so funziunamentu attraversu Cisco IOS XR CLI. Cù sta funzione, tutte l'applicazioni di terze parti attivate ponu riavvia automaticamente dopu una recarga di router o un cambiamentu RP. Stu riavviu automaticu di l'applicazioni assicura un funziunamentu perfettu di l'applicazioni ospitate.
Cumandamenti supportati nantu à u Manager d'Applicazione
Per ogni cumandamentu o cunfigurazione di u gestore di l'applicazioni eseguite, u Manager di l'applicazione esegue l'azzione dumandata interfaccendu cù u demone Docker attraversu u socket Docker. A tavula seguente elenca e funziunalità di u containeru Docker, i cumandamenti generici di Docker chì sò stati utilizati in i versioni precedenti, è i so cumandamenti equivalenti di gestione di l'applicazioni chì ponu avà esse usatu:
| Funziunalità | Comandi Docker generici | Applicazione Manager Cumandamenti |
| Installa l'applicazione RPM | NA | Router # appmgr package install rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
| Configurate è attivate l'applicazione | • Caricà l'imagine - [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/image_name.tar
• Verificate l'imaghjini nantu à u router - xr-vm_node0_RP0_CPU0:~]$docker images ls • Crea cuntainer sopra l'imaghjini - [xr-vm_node0_RP0_CPU0:~]$docker create image_name |
Router #config
Router (config) # appmgr Router (config-appmgr) # applicazione app_name Router (config-application) # attivate u tipu docker source image_name docker-run-opts "–net = host" docker-run-cmd "iperf3 -s -d" |
| • Start container - [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Router(config-application)#commit | |
| View a lista, statistiche, logs, è dettagli di l'applicazione
cuntainer |
• Lista images
-[xr-vm_node0_RP0_CPU0:~]$docker images ls • Lista di cuntenituri - [xr-vm_node0_RP0_CPU0:~]$docker ps• Statistiche -[xr-vm_node0_RP0_CPU0:~]$statistiche docker |
Router#show appmgr source-table
Router # mostra u nome di l'applicazione appmgr app_name riassuntu info Router # mostra u nome di l'applicazione appmgr app_name dettagliu infurmazione Router # mostra u nome di l'applicazione appmgr app_name statistiche |
| • Logs
-[xr-vm_node0_RP0_CPU0:~]$logs docker |
Router#show appmgr application-table
Router # mostra u nome di l'applicazione appmgr app_name logs |
| Funziunalità | Comandi Docker generici | Applicazione Manager Cumandamenti |
| Eseguite un novu | • Eseguite - [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | Router # appmgr applicazione exec |
| cumanda
dentru a |
nomu app_name docker-exec-cmd | |
| corsa | ||
| cuntainer | ||
| Ferma u containeru di l'applicazione | • Stop container - [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Router # appmgr nome di arrestu di l'applicazione app_name |
| Uccide u containeru di l'applicazione | • Kill container - [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Router # appmgr nome di uccisione di l'applicazione app_name |
| Cumincià u containeru di l'applicazione | • Start container - [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Nome di partenza di l'applicazione Router#appmgr app_name |
| Disattivà l'applicazione | • Stop container - [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Router # cunfigurazione
Router (config) # senza applicazione appmgr app_name |
| • Elimina u containeru - [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | Router (config) # commit | |
| • Elimina l'imagine - [xr-vm_node0_RP0_CPU0:~]$docker rmi image_name | ||
| Disinstalla l'immagine di l'applicazione / RPM | • Uninstall image - [xr-vm_node0_RP0_CPU0:~]$docker app uninstall image_name | Router # appmgr pacchettu uninstall package
image_name-0.1.0-XR_7.3.1.x86_64 |
Nota: L'usu di i cumandamenti di u gestore di l'applicazione sò spiegati in a sezione "Hosting iPerf in Docker Containers to Monitor Network Performance using Application Manager".
Configurazione di un Docker cù VRF multiplici
Questa sezione descrive cumu pudete cunfigurà un Docker cù parechje VRF in Cisco IOS XR. Per infurmazione nantu à a cunfigurazione di più VRF, vede u tema Configurazione di più VRF per l'ospitu di l'applicazioni.
Cunfigurazione
Aduprate i seguenti passi per creà è implementà un Docker multi-VRF in XR.
- Crea un Docker multi-VRF cù privilegi NET_ADMIN è SYS_ADMIN.
In i seguenti example, un containeru Docker chì cuntene trè VRF (giallu, blu è verde) hè lanciatu. L'example assume chì una precedente image docker "multivrfimage" hè stata installata cù u cumandimu di installazione di u pacchettu appmgr.
Nota:- Muntà u cuntenutu sanu di /var/run/netns da l'ospite à Docker ùn hè micca cunsigliatu, perchè munta u cuntenutu di netns currispundenti à XR è u pianu di amministratore di u sistema in u Docker.
- Ùn deve micca sguassà un VRF da Cisco IOS XR quandu hè utilizatu in un Docker. Se unu o più VRF sò sguassati da XR, u Docker multi-VRF ùn pò esse lanciatu
- Verificate se u Docker multi-VRF hè stata caricata bè.

- Cunnettete à u containeru multi-VRF Docker eseguendu u cumandimu seguitu.
Router # appmgr nome esecutivu di l'applicazione multivrfcontainer1 docker-exec-cmd /bin/bash/
Per automaticamente, u Docker hè caricatu in u spaziu di nomi global-vrf in Cisco IOS XR. - Verificate se i VRF multipli sò accessibili da u Docker.


Avete lanciatu cù successu un Docker multi-VRF in Cisco IOS XR.
Documenti / Risorse
![]() |
Applicazioni di hosting CISCO IOS XR [pdfManuale d'usu IOS XR Hosting Applications, IOS XR, Hosting Applications, Applications |

