Applicazioni di hosting CISCO IOS XR

Hosting di applicazioni su IOS XR
Questa sezione spiega i diversi tipi di hosting di applicazioni e dimostra come una semplice applicazione può essere ospitata in modo nativo o in un contenitore di terze parti su IOS XR.
- Hosting di applicazioni tramite contenitori Docker.
- Hosting di applicazioni container basate su Docker.
Hosting di applicazioni tramite contenitori Docker
L'hosting delle applicazioni su IOS XR supporta i contenitori docker. Puoi creare il tuo contenitore su IOS XR utilizzando la finestra mobile e ospitare applicazioni all'interno del contenitore. Le applicazioni possono essere sviluppate utilizzando qualsiasi distribuzione Linux. Questo è particolarmente adatto per le applicazioni che utilizzano librerie di sistema diverse da quelle fornite dal root IOS XR file sistema. Cisco NCS 540 supporta solo l'hosting di applicazioni basato su docker.
Hosting di applicazioni container basate su Docker
Questa sezione introduce il concetto di hosting di applicazioni contenitore e ne descrive il flusso di lavoro. L'hosting di applicazioni container consente di ospitare le applicazioni nel proprio ambiente e spazio di processo (spazio dei nomi) all'interno di un container Linux su Cisco IOS XR. Lo sviluppatore dell'applicazione ha il controllo completo sull'ambiente di sviluppo dell'applicazione e può utilizzare la distribuzione Linux di sua scelta. Le applicazioni sono isolate dai processi del piano di controllo IOS XR; tuttavia, possono connettersi a reti esterne a XR tramite le interfacce XR GigE. Le applicazioni possono anche accedere facilmente in locale file sistemi su IOS XR.
Utilizzo di Docker per l'hosting di applicazioni su Cisco IOS XR
Docker è un contenitore utilizzato per ospitare applicazioni su Cisco IOS XR. Docker fornisce l'isolamento per i processi applicativi dai processi host sottostanti su XR utilizzando gli spazi dei nomi di rete Linux.
Necessità di Docker su Cisco IOS XR
Docker sta diventando il modello di packaging preferito dal settore per le applicazioni nello spazio di virtualizzazione. Docker fornisce le basi per automatizzare la gestione del ciclo di vita delle applicazioni. Docker segue un approccio a più livelli che consiste in un'immagine di base nella parte inferiore che supporta livelli di applicazioni nella parte superiore. Le immagini di base sono disponibili pubblicamente in un repository, a seconda del tipo di applicazione che desideri installare sopra. È possibile manipolare le immagini della finestra mobile utilizzando l'indice e il registro della finestra mobile. Docker fornisce un flusso di lavoro simile a git per lo sviluppo di applicazioni container e supporta il meccanismo di "thin update", in cui viene aggiornata solo la differenza nel codice sorgente, portando ad aggiornamenti più rapidi. Docker fornisce anche il meccanismo di "thin download", in cui le applicazioni più recenti vengono scaricate più velocemente grazie alla condivisione di livelli docker di base comuni tra più contenitori docker. La condivisione dei livelli docker tra più contenitori docker porta a un ingombro inferiore per i contenitori docker su XR.
Architettura Docker su Cisco IOS XR
La figura seguente illustra l'architettura della finestra mobile su IOS XR.

I file binari delle applicazioni da ospitare vengono installati all'interno del contenitore docker.
Hosting di applicazioni in contenitori Docker
La figura seguente illustra il flusso di lavoro per l'hosting di applicazioni in contenitori Docker su IOS XR.

- Lo scaricatore file nel repository di origine viene utilizzato per creare il file binario dell'applicazione file sul tuo computer host (build del motore docker).
- Il binario dell'applicazione file viene inserito nel registro delle immagini della finestra mobile.
- Il binario dell'applicazione file viene estratto dal registro delle immagini docker e copiato nel contenitore docker su XR (host di destinazione del motore docker).
- L'applicazione è creata e ospitata nel contenitore docker su XR.
Aggiornamento delle applicazioni nei contenitori Docker
La figura seguente illustra il flusso di lavoro per l'aggiornamento delle applicazioni ospitate nei contenitori docker.
- L'aggiornamento dell'applicazione viene generato come aggiornamento delle librerie di base file (aggiornamento delta file) e inseriti nel registro delle immagini della finestra mobile.
- L'aggiornamento delta file (contenente solo la differenza nel codice dell'applicazione) viene estratto dal registro delle immagini docker e copiato nei contenitori docker su XR (host di destinazione del motore docker).
- I contenitori docker vengono riavviati con l'aggiornamento delta file.
Hosting di TPA utilizzando Application Manager
Tabella 1: tabella della cronologia delle funzionalità
| Caratteristica Nome | Informazioni sulla versione | Caratteristica Descrizione |
| Servizio daemon Docker su richiesta | Versione 7.5.1 | Da questa versione in poi, il
Il servizio demone Docker viene avviato su un router solo se si configura un'applicazione di hosting di terze parti utilizzando il file Gestione applicazioni comando. Un tale servizio su richiesta ottimizza le risorse del sistema operativo come CPU, memoria e potenza. Nelle versioni precedenti, il servizio daemon Docker veniva avviato automaticamente durante l'avvio del router. |
Nelle versioni precedenti, le applicazioni erano ospitate e controllate dai comandi Docker. Questi comandi Docker sono stati eseguiti nella shell bash del kernel che ospitava anche il software Cisco IOS XR. Con l'introduzione di Application Manager, è ora possibile gestire l'hosting di applicazioni di terze parti e il loro funzionamento tramite CLI Cisco IOS XR. Con questa funzionalità, tutte le applicazioni di terze parti attivate possono riavviarsi automaticamente dopo un ricaricamento del router o una commutazione RP. Questo riavvio automatico delle applicazioni garantisce il funzionamento senza interruzioni delle applicazioni ospitate.
Comandi supportati su Gestione applicazioni
Per ogni comando o configurazione eseguita dal gestore applicazioni, il gestore applicazioni esegue l'azione richiesta interfacciandosi con il demone Docker tramite il socket Docker. La tabella seguente elenca le funzionalità del contenitore Docker, i comandi Docker generici utilizzati nelle versioni precedenti e i comandi equivalenti del gestore applicazioni che ora possono essere utilizzati:
| Funzionalità | Comandi Docker generici | Applicazione Manager Comandi |
| Installare l'applicazione RPM | NA | RPM di installazione del pacchetto Router#appmgr
nome_immagine-0.1.0-XR_7.3.1.x86_64.rpm |
| Configurare e attivare l'applicazione | • Carica immagine – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/nome_immagine.catrame
• Verificare l'immagine sul router – xr-vm_node0_RP0_CPU0:~]$docker immagini ls • Crea un contenitore sull'immagine – [xr-vm_node0_RP0_CPU0:~]$docker crea nome_immagine |
Router#config
Router(config)#appmgr Router(config-appmgr)#applicazione nome_app Router(applicazione-config)#attiva la sorgente docker del tipo nome_immagine docker-run-opts “–net=host” docker-run-cmd “iperf3 -s -d” |
| • Avvia contenitore – [xr-vm_node0_RP0_CPU0:~]$docker start mio_id_contenitore | Router(applicazione-config)#commit | |
| View l'elenco, le statistiche, i registri e i dettagli dell'applicazione
contenitore |
• Elenca le immagini
-[xr-vm_node0_RP0_CPU0:~]$immagini docker ls • Elenco contenitori – [xr-vm_node0_RP0_CPU0:~]$docker ps• Statistiche -[xr-vm_node0_RP0_CPU0:~]Statistiche $docker |
Router#mostra la tabella sorgente appmgr
Router#mostra il nome dell'applicazione appmgr nome_app riepilogo delle informazioni Router#mostra il nome dell'applicazione appmgr nome_app dettaglio delle informazioni Router#mostra il nome dell'applicazione appmgr nome_app statistiche |
| • Registri
-[xr-vm_node0_RP0_CPU0:~]$docker log |
Router#mostra la tabella delle applicazioni appmgr
Router#mostra il nome dell'applicazione appmgr nome_app registri |
| Funzionalità | Comandi Docker generici | Applicazione Manager Comandi |
| Eseguine uno nuovo | • Esegui – [xr-vm_node0_RP0_CPU0:~]$docker exec -it mio_id_contenitore | Router#appmgr esecuzione applicazione |
| comando
dentro un |
nome nome_app docker-exec-cmd | |
| corsa | ||
| contenitore | ||
| Arrestare il contenitore dell'applicazione | • Arresta contenitore – [xr-vm_node0_RP0_CPU0:~]$docker stop mio_id_contenitore | Nome dell'arresto dell'applicazione Router#appmgr nome_app |
| Uccidi il contenitore dell'applicazione | • Kill contenitore – [xr-vm_node0_RP0_CPU0:~]$docker kill mio_id_contenitore | Nome di kill dell'applicazione Router#appmgr nome_app |
| Avviare il contenitore dell'applicazione | • Avvia contenitore – [xr-vm_node0_RP0_CPU0:~]$docker start mio_id_contenitore | Nome iniziale dell'applicazione Router#appmgr nome_app |
| Disattiva l'applicazione | • Arresta contenitore – [xr-vm_node0_RP0_CPU0:~]$docker stop mio_id_contenitore | Router#configura
Router(config)#nessuna applicazione appmgr nome_app |
| • Rimuovi contenitore – [xr-vm_node0_RP0_CPU0:~]$docker rm mio_id_contenitore | Router(config)#commit | |
| • Rimuovi immagine – [xr-vm_node0_RP0_CPU0:~]$docker rmi nome_immagine | ||
| Disinstallare l'immagine/RPM dell'applicazione | • Disinstalla immagine – [xr-vm_node0_RP0_CPU0:~]Disinstallazione dell'app $docker nome_immagine | Pacchetto di disinstallazione del pacchetto Router#appmgr
nome_immagine-0.1.0-XR_7.3.1.x86_64 |
Nota: l'utilizzo dei comandi del gestore applicazioni è spiegato nella sezione "Hosting iPerf in contenitori Docker per monitorare le prestazioni di rete utilizzando Gestione applicazioni".
Configurazione di una finestra mobile con più VRF
Questa sezione descrive come configurare un Docker con più VRF su Cisco IOS XR. Per informazioni sulla configurazione di più VRF, vedere l'argomento Configurazione di più VRF per l'hosting di applicazioni.
Configurazione
Utilizzare i seguenti passaggi per creare e distribuire un Docker multi-VRF su XR.
- Crea un Docker multi-VRF con privilegi NET_ADMIN e SYS_ADMIN.
Nel seguente esempioample, viene lanciato un contenitore Docker contenente tre VRF (giallo, blu e verde). L'example presuppone che un'immagine docker "multivrfimage" precedente sia stata installata utilizzando il comando appmgr package install.
Nota:- Non è consigliabile montare l'intero contenuto di /var/run/netns dall'host a Docker, poiché monta il contenuto di netns corrispondente a XR e al piano di amministrazione del sistema nel Docker.
- Non eliminare un VRF da Cisco IOS XR quando viene utilizzato in un Docker. Se uno o più VRF vengono eliminati da XR, non sarà possibile avviare il Docker multi-VRF
- Verificare se il Docker multi-VRF è stato caricato correttamente.

- Connettersi al contenitore Docker multi-VRF eseguendo il comando seguente.
Router# appmgr nome exec dell'applicazione multivrfcontainer1 docker-exec-cmd /bin/bash/
Per impostazione predefinita, Docker viene caricato nello spazio dei nomi global-vrf su Cisco IOS XR. - Verifica se più VRF sono accessibili dal Docker.


Hai avviato con successo un Docker multi-VRF su Cisco IOS XR.
Documenti / Risorse
![]() |
Applicazioni di hosting CISCO IOS XR [pdf] Manuale d'uso Applicazioni di hosting IOS XR, IOS XR, Applicazioni di hosting, Applicazioni |

