CISCO IOS XR-vertsapplikasjoner

Hosting applikasjoner på IOS XR
Denne delen forklarer de forskjellige typene applikasjonshosting, og demonstrerer hvordan en enkel applikasjon kan hostes internt eller i en tredjepartsbeholder på IOS XR.
- Applikasjonsvert ved bruk av Docker-beholdere.
- Docker-basert hosting for containerapplikasjoner.
Applikasjonsvert ved bruk av Docker-beholdere
Applikasjonsvert på IOS XR støtter docker-containere. Du kan lage din egen container på IOS XR ved hjelp av docker, og vertsapplikasjoner i containeren. Applikasjonene kan utvikles ved hjelp av hvilken som helst Linux-distribusjon. Dette er godt egnet for applikasjoner som bruker systembiblioteker som er forskjellige fra det som tilbys av IOS XR-roten file system. Cisco NCS 540 støtter kun docker-basert applikasjonsvert.
Docker-basert hosting for containerapplikasjoner
Denne delen introduserer konseptet med hosting for containerapplikasjoner og beskriver arbeidsflyten. Hosting for containerapplikasjoner gjør det mulig for applikasjoner å være vert i sitt eget miljø og prosessrom (navneområde) i en Linux-beholder på Cisco IOS XR. Applikasjonsutvikleren har full kontroll over applikasjonsutviklingsmiljøet, og kan bruke en valgfri Linux-distribusjon. Applikasjonene er isolert fra IOS XR-kontrollplanprosessene; Likevel kan de koble til nettverk utenfor XR gjennom XR GigE-grensesnittene. Applikasjonene kan også enkelt få tilgang til lokalt file systemer på IOS XR.
Bruke Docker for hosting av applikasjoner på Cisco IOS XR
Docker er en container som brukes til å hoste applikasjoner på Cisco IOS XR. Docker gir isolasjon for applikasjonsprosesser fra de underliggende vertsprosessene på XR ved å bruke Linux-nettverksnavneområder.
Behov for Docker på Cisco IOS XR
Docker er i ferd med å bli den bransjeforetrukne pakkemodellen for applikasjoner i virtualiseringsområdet. Docker gir grunnlaget for automatisering av applikasjonslivssyklusadministrasjon. Docker følger en lagdelt tilnærming som består av et basisbilde nederst som støtter lag med applikasjoner på toppen. Basisbildene er tilgjengelige offentlig i et depot, avhengig av hvilken type applikasjon du vil installere på toppen. Du kan manipulere docker-bilder ved å bruke docker-indeksen og registret. Docker gir en git-lignende arbeidsflyt for utvikling av containerapplikasjoner og støtter «tynn oppdatering»-mekanismen, der bare forskjellen i kildekode oppdateres, noe som fører til raskere oppgraderinger. Docker tilbyr også "tynn nedlasting"-mekanismen, der nyere applikasjoner lastes ned raskere på grunn av deling av vanlige basisdokkerlag mellom flere docker-containere. Deling av docker-lag mellom flere docker-containere fører til lavere fotavtrykk for docker-containere på XR.
Docker-arkitektur på Cisco IOS XR
Følgende figur illustrerer docker-arkitekturen på IOS XR.

Applikasjonsbinærfilene for applikasjonene som skal hostes, er installert inne i docker-beholderen.
Hosting-applikasjoner i Docker-containere
Følgende figur illustrerer arbeidsflyten for hosting av applikasjoner i Docker-beholdere på IOS XR.

- Havnemannen file i kildelageret brukes til å bygge applikasjonens binære file på vertsmaskinen din (docker engine build).
- Søknaden binær file er presset inn i docker-bilderegisteret.
- Søknaden binær file hentes fra docker image-registeret og kopieres til docker-beholderen på XR (docker engine target host).
- Applikasjonen er bygget og vert i docker-beholderen på XR.
Oppdatering av applikasjoner i Docker-beholdere
Følgende figur illustrerer arbeidsflyten for oppdatering av applikasjoner som er vert i docker-containere.
- Applikasjonsoppdateringen genereres som en base libs-oppdatering file (delta oppdatering file) og presset til docker-bilderegisteret.
- Delta-oppdateringen file (som bare inneholder forskjellen i applikasjonskode) hentes fra docker-bilderegisteret og kopieres til docker-beholderne på XR (docker engine target host).
- Docker-beholderne startes på nytt med deltaoppdateringen file.
Hosting av TPA ved hjelp av Application Manager
Tabell 1: Tabell over funksjonshistorikk
| Trekk Navn | Utgivelsesinformasjon | Trekk Beskrivelse |
| On-Demand Docker Daemon Service | Utgivelse 7.5.1 | Fra denne utgivelsen og utover
Docker daemon-tjenesten starter på en ruter bare hvis du konfigurerer en tredjeparts vertsapplikasjon ved hjelp av appmanager kommando. En slik on-demand-tjeneste optimerer operativsystemressurser som CPU, minne og strøm. I tidligere utgivelser startet Docker-demontjenesten automatisk under oppstart av ruteren. |
I tidligere utgivelser ble applikasjonene vert og kontrollert av Docker-kommandoene. Disse Docker-kommandoene ble utført i bash-skallet til kjernen som også var vert for Cisco IOS XR-programvaren. Med introduksjonen av Application Manager er det nå mulig å administrere tredjeparts applikasjonshosting og deres funksjon gjennom Cisco IOS XR CLI-er. Med denne funksjonen kan alle aktiverte tredjepartsapplikasjoner starte på nytt automatisk etter en omlasting av ruteren eller en RP-bytte. Denne automatiske omstarten av applikasjonene sikrer sømløs funksjon av de vertsbaserte applikasjonene.
Støttede kommandoer på Application Manager
For hver applikasjonsbehandlerkommando eller konfigurasjon som utføres, utfører applikasjonsbehandler den forespurte handlingen ved å koble til Docker-demonen gjennom Docker-kontakten. Følgende tabell viser Docker-beholderfunksjonene, de generiske Docker-kommandoene som ble brukt i de tidligere utgivelsene, og tilsvarende applikasjonsbehandlingskommandoer som nå kan brukes:
| Funksjonalitet | Generiske Docker-kommandoer | Søknad Leder Kommandoer |
| Installer applikasjonen RPM | NA | Router#appmgr-pakke installer rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
| Konfigurer og aktiver applikasjonen | • Last inn bilde – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/bildenavn.tjære
• Bekreft bildet på ruteren – xr-vm_node0_RP0_CPU0:~]$docker-bilder ls • Lag beholder over bildet – [xr-vm_node0_RP0_CPU0:~]$docker opprette bildenavn |
Ruter#config
Ruter(config)#appmgr Ruter(config-appmgr)#application appnavn Ruter(config-application)#activate type docker-kilde bildenavn docker-run-opts “–net=host” docker-run-cmd “iperf3 -s -d” |
| • Start container – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Ruter(config-application)#commit | |
| View listen, statistikk, logger og detaljer om applikasjonen
container |
• Liste over bilder
-[xr-vm_node0_RP0_CPU0:~]$docker-bilder ls • Liste beholdere – [xr-vm_node0_RP0_CPU0:~]$docker ps• Statistikk -[xr-vm_node0_RP0_CPU0:~]$docker-statistikk |
Ruter#vis appmgr kildetabell
Ruter#vis appmgr applikasjonsnavn appnavn info sammendrag Ruter#vis appmgr applikasjonsnavn appnavn info detalj Ruter#vis appmgr applikasjonsnavn appnavn statistikk |
| • Tømmerstokker
-[xr-vm_node0_RP0_CPU0:~]$docker-logger |
Ruter#vis appmgr-applikasjonstabell
Ruter#vis appmgr applikasjonsnavn appnavn logger |
| Funksjonalitet | Generiske Docker-kommandoer | Søknad Leder Kommandoer |
| Kjør en ny | • Utfør – [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | Ruter#appmgr applikasjon exec |
| kommando
inne i a |
navn appnavn docker-exec-cmd | |
| løping | ||
| container | ||
| Stopp applikasjonsbeholderen | • Stopp container – [xr-vm_node0_RP0_CPU0:~]$docker stopp my_container_id | Ruter#appmgr programstoppnavn appnavn |
| Drep applikasjonsbeholderen | • Kill container – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Ruter#appmgr program drepe navn appnavn |
| Start applikasjonsbeholderen | • Start container – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Startnavn for ruter#appmgr appnavn |
| Deaktiver applikasjonen | • Stopp container – [xr-vm_node0_RP0_CPU0:~]$docker stopp my_container_id | Ruter#konfigurer
Ruter(config)#no appmgr-applikasjon appnavn |
| • Fjern beholder – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | Ruter(config)#commit | |
| • Fjern bilde – [xr-vm_node0_RP0_CPU0:~]$docker rmi bildenavn | ||
| Avinstaller applikasjonsbildet/RPM | • Avinstaller bilde – [xr-vm_node0_RP0_CPU0:~]avinstaller $docker-appen bildenavn | Ruter#appmgr-pakkeavinstalleringspakke
bildenavn-0.1.0-XR_7.3.1.x86_64 |
Note: Bruken av applikasjonsbehandlerkommandoene er forklart i delen "Hosting iPerf i Docker-beholdere for å overvåke nettverksytelse ved hjelp av applikasjonsbehandling".
Konfigurere en docker med flere VRF-er
Denne delen beskriver hvordan du kan konfigurere en Docker med flere VRF-er på Cisco IOS XR. For informasjon om konfigurering av flere VRF-er, se emnet Konfigurere flere VRF-er for applikasjonsvert.
Konfigurasjon
Bruk følgende trinn for å opprette og distribuere en multi-VRF Docker på XR.
- Opprett en multi-VRF Docker med NET_ADMIN og SYS_ADMIN privilegier.
I følgende eksample, lanseres en Docker-beholder som inneholder tre VRF-er (gul, blå og grønn). Eksample antar at et tidligere "multivrfimage" docker-bilde ble installert ved å bruke appmgr-pakkeinstallasjonskommandoen.
Note:- Det anbefales ikke å montere hele innholdet av /var/run/netns fra vert til Docker, fordi det monterer innholdet til netns som tilsvarer XR og systemadmin-planet i Docker.
- Du bør ikke slette en VRF fra Cisco IOS XR når den brukes i en Docker. Hvis en eller flere VRF-er slettes fra XR, kan ikke multi-VRF Docker startes
- Bekreft om multi-VRF Docker har blitt lastet.

- Koble til multi-VRF Docker-beholderen ved å utføre følgende kommando.
Ruter# appmgr program exec navn multivrfcontainer1 docker-exec-cmd /bin/bash/
Som standard lastes Docker inn i global-vrf-navneområdet på Cisco IOS XR. - Kontroller om de flere VRF-ene er tilgjengelige fra Docker.


Du har lansert en multi-VRF Docker på Cisco IOS XR.
Dokumenter / Ressurser
![]() |
CISCO IOS XR-vertsapplikasjoner [pdfBrukerhåndbok IOS XR vertsapplikasjoner, IOS XR, vertsapplikasjoner, applikasjoner |

