Cisco logo

CISCO IOS XR-vertsapplikasjoner

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.

CISCO IOS XR-vertsapplikasjoner 1

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.
CISCO IOS XR-vertsapplikasjoner 2

  1. Havnemannen file i kildelageret brukes til å bygge applikasjonens binære file på vertsmaskinen din (docker engine build).
  2. Søknaden binær file er presset inn i docker-bilderegisteret.
  3. Søknaden binær file hentes fra docker image-registeret og kopieres til docker-beholderen på XR (docker engine target host).
  4. 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.CISCO IOS XR-vertsapplikasjoner 3

  1. Applikasjonsoppdateringen genereres som en base libs-oppdatering file (delta oppdatering file) og presset til docker-bilderegisteret.
  2. Delta-oppdateringen file (som bare inneholder forskjellen i applikasjonskode) hentes fra docker-bilderegisteret og kopieres til docker-beholderne på XR (docker engine target host).
  3. 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.

  1. 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.CISCO IOS XR-vertsapplikasjoner 4
    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
  2. Bekreft om multi-VRF Docker har blitt lastet.CISCO IOS XR-vertsapplikasjoner 5
  3. 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.
  4. Kontroller om de flere VRF-ene er tilgjengelige fra Docker.CISCO IOS XR-vertsapplikasjoner 7
    CISCO IOS XR-vertsapplikasjoner 8

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

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *