Hostingové aplikace CISCO IOS XR
Hostování aplikací na IOS XR
Tato část vysvětluje různé druhy hostování aplikací a ukazuje, jak může být jednoduchá aplikace hostována nativně nebo v kontejneru třetí strany na IOS XR.
- Hosting aplikací pomocí kontejnerů Docker.
- Hostování kontejnerových aplikací založených na Dockeru.
Hosting aplikací pomocí kontejnerů Docker
Hostování aplikací na IOS XR podporuje docker kontejnery. Můžete si vytvořit svůj vlastní kontejner na IOS XR pomocí dockeru a hostovat aplikace v kontejneru. Aplikace lze vyvíjet pomocí libovolné distribuce Linuxu. To se dobře hodí pro aplikace, které používají systémové knihovny, které se liší od těch, které poskytuje kořenový adresář IOS XR file Systém. Cisco NCS 540 podporuje pouze hostování aplikací na bázi dockeru.
Hostování kontejnerových aplikací založených na Dockeru
Tato část představuje koncept hostování kontejnerových aplikací a popisuje jeho pracovní postup. Hostování kontejnerových aplikací umožňuje, aby byly aplikace hostovány v jejich vlastním prostředí a procesním prostoru (namespace) v rámci linuxového kontejneru na Cisco IOS XR. Vývojář aplikace má úplnou kontrolu nad vývojovým prostředím aplikace a může používat distribuci Linuxu dle výběru. Aplikace jsou izolovány od procesů řídicí roviny IOS XR; přesto se mohou připojit k sítím mimo XR prostřednictvím rozhraní XR GigE. Aplikace mohou také snadno přistupovat k místním file systémy na IOS XR.
Použití Dockeru pro hostování aplikací na Cisco IOS XR
Docker je kontejner používaný pro hostování aplikací na Cisco IOS XR. Docker poskytuje izolaci aplikačních procesů od základních hostitelských procesů na XR pomocí linuxových síťových jmenných prostorů.
Need for Docker na Cisco IOS XR
Docker se stává průmyslově preferovaným balíčkovacím modelem pro aplikace ve virtualizačním prostoru. Docker poskytuje základ pro automatizaci správy životního cyklu aplikací. Docker se řídí vrstveným přístupem, který se skládá ze základního obrázku ve spodní části, který podporuje vrstvy aplikací nahoře. Základní obrazy jsou veřejně dostupné v úložišti v závislosti na typu aplikace, kterou chcete nainstalovat. S obrazy dockeru můžete manipulovat pomocí indexu a registru dockeru. Docker poskytuje pracovní postup podobný git pro vývoj kontejnerových aplikací a podporuje mechanismus „tenké aktualizace“, kde se aktualizuje pouze rozdíl ve zdrojovém kódu, což vede k rychlejším upgradům. Docker také poskytuje mechanismus „tenkého stahování“, kdy se novější aplikace stahují rychleji díky sdílení společných základních dockerových vrstev mezi více kontejnery dockerů. Sdílení ukotvitelných vrstev mezi více kontejnery ukotvovacích stanic vede k nižším nárokům na kontejnery dokovacích stanic na XR.
Docker Architecture na Cisco IOS XR
Následující obrázek ilustruje architekturu dockeru na IOS XR.
Binární soubory aplikací pro aplikace, které mají být hostovány, jsou nainstalovány uvnitř kontejneru dockeru.
Hostování aplikací v kontejnerech Docker
Následující obrázek ilustruje pracovní postup pro hostování aplikací v kontejnerech Docker na IOS XR.
- Docker file ve zdrojovém úložišti se používá k sestavení binárního souboru aplikace file na vašem hostitelském počítači (sestavení docker engine).
- Binární soubor aplikace file je vložen do registru obrazů dockeru.
- Binární soubor aplikace file je stažen z registru bitové kopie dockeru a zkopírován do kontejneru docker na XR (cílový hostitel docker engine).
- Aplikace je sestavena a hostována v kontejneru dockeru na XR.
Aktualizace aplikací v kontejnerech Docker
Následující obrázek ilustruje pracovní postup aktualizace aplikací hostovaných v kontejnerech dockeru.
- Aktualizace aplikace je generována jako základní aktualizace libs file (aktualizace delta file) a odesláno do registru bitových kopií dockeru.
- Aktualizace delta file (obsahující pouze rozdíl v kódu aplikace) je stažen z registru bitové kopie dockeru a zkopírován do kontejnerů dockeru na XR (cílový hostitel docker engine).
- Ukotvitelné kontejnery se restartují s rozdílovou aktualizací file.
Hostování TPA pomocí Správce aplikací
Tabulka 1: Tabulka historie funkcí
Funkce Jméno | Informace o vydání | Funkce Popis |
On-Demand Docker Daemon Service | Vydání 7.5.1 | Od tohoto vydání dále,
Služba démona Docker se spustí na routeru pouze v případě, že nakonfigurujete hostitelskou aplikaci třetí strany pomocí appmgr příkaz. Taková služba na vyžádání optimalizuje zdroje operačního systému, jako je CPU, paměť a napájení. V dřívějších verzích se služba démona Docker automaticky spouštěla během spouštění routeru. |
V předchozích verzích byly aplikace hostovány a řízeny pomocí příkazů Docker. Tyto příkazy Dockeru byly provedeny v bash shellu jádra, které také hostovalo software Cisco IOS XR. Se zavedením Application Manager je nyní možné spravovat hostování aplikací třetích stran a jejich fungování prostřednictvím CLI CLI IOS XR. Díky této funkci se mohou všechny aktivované aplikace třetích stran automaticky restartovat po opětovném načtení routeru nebo po přepnutí RP. Tento automatický restart aplikací zajišťuje bezproblémové fungování hostovaných aplikací.
Podporované příkazy ve Správci aplikací
Pro každý spuštěný příkaz správce aplikací nebo konfiguraci provede správce aplikací požadovanou akci prostřednictvím propojení s démonem Docker prostřednictvím soketu Docker. V následující tabulce jsou uvedeny funkce kontejneru Docker, obecné příkazy Docker, které byly použity v předchozích verzích, a jeho ekvivalentní příkazy správce aplikací, které lze nyní použít:
Funkčnost | Obecné příkazy Docker | Aplikace Manažer Příkazy |
Nainstalujte RPM aplikace | NA | Router#appmgr instalace balíčku rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
Nakonfigurujte a aktivujte aplikaci | • Načíst obrázek – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/název_obrázku.dehet
• Ověřte obraz na routeru – xr-vm_node0_RP0_CPU0:~]$docker images ls • Vytvořit kontejner přes obrázek – [xr-vm_node0_RP0_CPU0:~]Vytvořit $docker název_obrázku |
Router#config
Router(config)#appmgr Router(config-appmgr)#application app_name Router(config-application)#activate typ docker source název_obrázku docker-run-opts „–net=host“ docker-run-cmd „iperf3 -s -d“ |
• Spustit kontejner – [xr-vm_node0_RP0_CPU0:~]$docker start moje_id_kontejneru | Router(config-application)#commit | |
View seznam, statistiky, protokoly a podrobnosti o aplikaci
kontejner |
• Seznam obrázků
-[xr-vm_node0_RP0_CPU0:~]$docker images ls • Seznam kontejnerů – [xr-vm_node0_RP0_CPU0:~]$docker ps• Statistika -[xr-vm_node0_RP0_CPU0:~]$docker statistiky |
Router#show appmgr source-table
Router#show appmgr název aplikace app_name souhrn informací Router#show appmgr název aplikace app_name info detail Router#show appmgr název aplikace app_name statistiky |
• Protokoly
-[xr-vm_node0_RP0_CPU0:~]protokoly $docker |
Router#show appmgr application-table
Router#show appmgr název aplikace app_name protokoly |
Funkčnost | Obecné příkazy Docker | Aplikace Manažer Příkazy |
Spustit nový | • Spustit – [xr-vm_node0_RP0_CPU0:~]$docker exec -it moje_id_kontejneru | Router#appmgr aplikace exec |
příkaz
uvnitř a |
jméno app_name docker-exec-cmd | |
běh | ||
kontejner | ||
Zastavte aplikační kontejner | • Zastavit kontejner – [xr-vm_node0_RP0_CPU0:~]$docker stop moje_id_kontejneru | Router#appmgr název zastavení aplikace app_name |
Zabijte aplikační kontejner | • Kill kontejner – [xr-vm_node0_RP0_CPU0:~]$docker kill moje_id_kontejneru | Router#appmgr název ukončení aplikace app_name |
Spusťte kontejner aplikace | • Spustit kontejner – [xr-vm_node0_RP0_CPU0:~]$docker start moje_id_kontejneru | Router#appmgr počáteční název aplikace app_name |
Deaktivujte aplikaci | • Zastavit kontejner – [xr-vm_node0_RP0_CPU0:~]$docker stop moje_id_kontejneru | Router#konfigurovat
Router(config)#žádná aplikace appmgr app_name |
• Odebrat kontejner – [xr-vm_node0_RP0_CPU0:~]$docker rm moje_id_kontejneru | Router(config)#commit | |
• Odebrat obrázek – [xr-vm_node0_RP0_CPU0:~]$docker rmi název_obrázku | ||
Odinstalujte obraz aplikace/RPM | • Odinstalovat bitovou kopii – [xr-vm_node0_RP0_CPU0:~]odinstalace aplikace $docker název_obrázku | Balíček pro odinstalaci balíčku Router#appmgr
image_name-0.1.0-XR_7.3.1.x86_64 |
Poznámka: Použití příkazů správce aplikací je vysvětleno v části „Hostování iPerf v kontejnerech Docker pro sledování výkonu sítě pomocí Správce aplikací“.
Konfigurace dockeru s více VRF
Tato část popisuje, jak můžete nakonfigurovat Docker s více VRF na Cisco IOS XR. Informace o konfiguraci více VRF naleznete v tématu Konfigurace více VRF pro hostování aplikací.
Konfigurace
Pomocí následujících kroků vytvořte a nasaďte multi-VRF Docker na XR.
- Vytvořte multi-VRF Docker s oprávněními NET_ADMIN a SYS_ADMIN.
V následujícím example se spustí kontejner Docker obsahující tři VRF (žlutý, modrý a zelený). BývalýampSoubor předpokládá, že předchozí obraz dockeru „multivrfimage“ byl nainstalován pomocí příkazu appmgr package install.
Poznámka:- Připojení celého obsahu /var/run/netns z hostitele do Dockeru se nedoporučuje, protože připojí obsah netns odpovídající XR a systémové administrátorské rovině do Dockeru.
- Neměli byste odstraňovat VRF z Cisco IOS XR, když se používá v Dockeru. Pokud je z XR odstraněn jeden nebo více VRF, multi-VRF Docker nelze spustit
- Ověřte, zda byl úspěšně načten multi-VRF Docker.
- Připojte se ke kontejneru multi-VRF Docker provedením následujícího příkazu.
Router# appmgr název exec aplikace multivrfcontainer1 docker-exec-cmd /bin/bash/
Ve výchozím nastavení je Docker načten v oboru názvů global-vrf na Cisco IOS XR. - Ověřte, zda je více VRF přístupných z Dockeru.
Úspěšně jste spustili multi-VRF Docker na Cisco IOS XR.
Dokumenty / zdroje
![]() |
Hostingové aplikace CISCO IOS XR [pdfUživatelská příručka Hostingové aplikace IOS XR, IOS XR, Hostingové aplikace, Aplikace |