CISCO IOS XR հոստինգի հավելվածներ

Հոսթինգ հավելվածներ IOS XR-ում
Այս բաժինը բացատրում է հավելվածների հոսթինգի տարբեր տեսակները և ցույց է տալիս, թե ինչպես կարող է պարզ հավելվածը տեղակայվել բնիկ կամ երրորդ կողմի կոնտեյներով IOS XR-ում:
- Հավելվածի հոստինգ՝ Docker կոնտեյներների միջոցով:
- Docker-ի վրա հիմնված կոնտեյներային հավելվածի հոստինգ:
Հավելվածի հոստինգ՝ Docker կոնտեյներների միջոցով
IOS XR-ում հավելվածների հոսթինգն աջակցում է դոկեր կոնտեյներներին: Դուք կարող եք ստեղծել ձեր սեփական կոնտեյները IOS XR-ի վրա՝ օգտագործելով docker, և հյուրընկալող հավելվածները կոնտեյների ներսում: Հավելվածները կարող են մշակվել ցանկացած Linux բաշխման միջոցով: Սա լավ է հարմար հավելվածների համար, որոնք օգտագործում են համակարգային գրադարաններ, որոնք տարբերվում են IOS XR արմատից տրամադրվածից file համակարգ. Cisco NCS 540-ն աջակցում է միայն դոկերի վրա հիմնված հավելվածների հոստինգին:
Docker-ի վրա հիմնված կոնտեյներային հավելվածի հոստինգ
Այս բաժինը ներկայացնում է կոնտեյներային հավելվածների հոսթինգի հայեցակարգը և նկարագրում է դրա աշխատանքի ընթացքը: Կոնտեյներային հավելվածների հոսթինգը հնարավորություն է տալիս հավելվածներին տեղակայել իրենց սեփական միջավայրում և գործընթացի տարածությունում (անունների տարածություն) Cisco IOS XR-ի Linux կոնտեյների մեջ: Հավելվածի մշակողը լիովին վերահսկում է հավելվածների մշակման միջավայրը և կարող է օգտագործել նախընտրած Linux բաշխումը: Հավելվածները մեկուսացված են IOS XR կառավարման հարթության գործընթացներից. այնուամենայնիվ, նրանք կարող են միանալ XR-ից դուրս գտնվող ցանցերին XR GigE միջերեսների միջոցով: Հավելվածները կարող են նաև հեշտությամբ մուտք գործել տեղական file համակարգեր IOS XR-ում:
Օգտագործելով Docker-ը Cisco IOS XR-ի վրա հոսթինգ հավելվածների համար
Docker-ը կոնտեյներ է, որն օգտագործվում է Cisco IOS XR-ում հավելվածների հոսթինգի համար: Docker-ն ապահովում է կիրառական գործընթացների մեկուսացում XR-ի հիմքում ընկած հյուրընկալող գործընթացներից՝ օգտագործելով Linux ցանցի անվանատարածքները:
Պետք է Docker-ը Cisco IOS XR-ում
Docker-ը դառնում է արդյունաբերության կողմից նախընտրելի փաթեթավորման մոդելը վիրտուալացման տարածքում հավելվածների համար: Docker-ը հիմք է ստեղծում հավելվածների կյանքի ցիկլի կառավարման ավտոմատացման համար: Docker-ը հետևում է շերտավոր մոտեցմանը, որը բաղկացած է ներքևի բազային պատկերից, որն աջակցում է վերևում գտնվող հավելվածների շերտերին: Հիմնական պատկերները հասանելի են հրապարակային պահեստում՝ կախված հավելվածի տեսակից, որը ցանկանում եք տեղադրել վերևում: Դուք կարող եք շահարկել դոկերի պատկերները՝ օգտագործելով դոկերի ինդեքսը և ռեեստրը: Docker-ն ապահովում է git-ի նման աշխատանքային հոսք կոնտեյներային հավելվածների մշակման համար և աջակցում է «բարակ թարմացման» մեխանիզմը, որտեղ թարմացվում է միայն սկզբնական կոդի տարբերությունը, ինչը հանգեցնում է ավելի արագ թարմացումների: Docker-ը նաև տրամադրում է «բարակ ներբեռնման» մեխանիզմը, որտեղ նոր հավելվածներն ավելի արագ են ներբեռնվում՝ բազմաթիվ դոկեր կոնտեյներների միջև ընդհանուր բազային դոկերի շերտերի համօգտագործման պատճառով: Դոկերի շերտերի համօգտագործումը մի քանի դոկեր կոնտեյներների միջև հանգեցնում է XR-ի վրա դոկեր կոնտեյներների ավելի ցածր հետքի:
Docker Architecture-ը Cisco IOS XR-ում
Հետևյալ նկարը ցույց է տալիս IOS XR-ի դոկերի ճարտարապետությունը:

Հավելվածների երկուականները տեղադրվող հավելվածների համար տեղադրվում են դոկեր կոնտեյների ներսում:
Հոսթինգ հավելվածներ Docker Containers-ում
Հետևյալ նկարը ցույց է տալիս IOS XR-ի Docker կոնտեյներներում հավելվածների հոսթինգի աշխատանքի ընթացքը:

- Նավահանգիստը file սկզբնաղբյուրի պահոցում օգտագործվում է հավելվածը երկուական ձև ստեղծելու համար file ձեր (docker engine build) հոսթ մեքենայի վրա:
- Դիմումի երկուական file դրվում է դոկերի պատկերի ռեեստր:
- Դիմումի երկուական file դուրս է բերվում դոկերի պատկերի ռեեստրից և պատճենվում է դոկերի կոնտեյներ XR-ի վրա (docker engine target host):
- Հավելվածը կառուցված է և տեղակայված է դոկեր կոնտեյներով XR-ում:
Ծրագրերի թարմացում Docker Containers-ում
Հետևյալ նկարը ցույց է տալիս դոկեր կոնտեյներներում տեղակայված հավելվածների թարմացման աշխատանքների ընթացքը:
- Հավելվածի թարմացումը ստեղծվում է որպես հիմնական libs թարմացում file (դելտա թարմացում file) և դրվեց դոկերի պատկերի ռեեստր:
- Դելտայի թարմացում file (պարունակում է միայն հավելվածի կոդերի տարբերությունը) հանվում է docker պատկերի գրանցամատյանից և պատճենվում XR-ի դոկերի կոնտեյներներում (docker engine target host):
- Դոկերի բեռնարկղերը վերագործարկվում են դելտա թարմացմամբ file.
TPA-ի հոստինգ՝ օգտագործելով հավելվածի կառավարիչը
Աղյուսակ 1. Հատկանիշների պատմության աղյուսակ
| Առանձնահատկություն Անուն | Տեղեկություն թողարկման մասին | Առանձնահատկություն Նկարագրություն |
| Պահանջով Docker Daemon ծառայություն | Թողարկում 7.5.1 | Այս թողարկումից սկսած՝
Docker daemon ծառայությունը սկսվում է երթուղիչի վրա միայն այն դեպքում, եթե կարգավորեք երրորդ կողմի հոսթինգի հավելվածը՝ օգտագործելով appmgr հրաման. Նմանատիպ ծառայությունը օպտիմիզացնում է օպերացիոն համակարգի ռեսուրսները, ինչպիսիք են պրոցեսորը, հիշողությունը և էներգիան: Ավելի վաղ թողարկումներում Docker daemon ծառայությունը ավտոմատ կերպով գործարկվում էր երթուղիչի բեռնման ժամանակ: |
Նախորդ թողարկումներում հավելվածները հյուրընկալվել և վերահսկվել են Docker հրամաններով: Docker-ի այս հրամաններն իրականացվել են միջուկի bash shell-ում, որը նաև հյուրընկալել է Cisco IOS XR ծրագրակազմը: Application Manager-ի ներդրմամբ այժմ հնարավոր է կառավարել երրորդ կողմի հավելվածների հոսթինգը և դրանց գործունեությունը Cisco IOS XR CLI-ների միջոցով: Այս ֆունկցիայի միջոցով երրորդ կողմի բոլոր ակտիվացված հավելվածները կարող են ավտոմատ կերպով վերագործարկվել երթուղիչի վերաբեռնումից կամ RP-ի անցումից հետո: Հավելվածների այս ավտոմատ վերագործարկումը ապահովում է հյուրընկալված հավելվածների անխափան աշխատանքը:
Աջակցվող հրամաններ Application Manager-ում
Կատարված յուրաքանչյուր հավելվածի կառավարչի հրամանի կամ կազմաձևման համար Application Manager-ը կատարում է պահանջվող գործողությունը՝ Docker վարդակի միջոցով շփվելով Docker daemon-ի հետ: Հետևյալ աղյուսակում թվարկված են Docker կոնտեյների գործառույթները, Docker-ի ընդհանուր հրամանները, որոնք օգտագործվել են նախորդ թողարկումներում և դրա համարժեք հավելվածի կառավարչի հրամանները, որոնք այժմ կարող են օգտագործվել.
| Ֆունկցիոնալություն | Ընդհանուր Docker հրամաններ | Դիմում Կառավարիչ Հրամաններ |
| Տեղադրեք RPM հավելվածը | NA | Router#appmgr փաթեթի տեղադրում rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
| Կազմաձևեք և ակտիվացրեք հավելվածը | • Բեռնել պատկերը – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/պատկեր_անուն.tar
• Ստուգեք պատկերը երթուղիչի վրա – xr-vm_node0_RP0_CPU0:~]$docker պատկերներ ls • Ստեղծեք կոնտեյներ պատկերի վրա – [xr-vm_node0_RP0_CPU0:~]$docker-ի ստեղծում պատկեր_անուն |
Ուղղորդիչ # կազմաձևում
Ուղղորդիչ(կոնֆիգ)#appmgr Ուղղորդիչ(config-appmgr)#հավելված հավելվածի անունը Ուղղորդիչ (config-application)#activate type docker source պատկեր_անուն docker-run-opts «–net=host» docker-run-cmd «iperf3 -s -d» |
| • Սկսել կոնտեյները – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Ուղղորդիչ (config-application) #commit | |
| View ցանկը, վիճակագրությունը, տեղեկամատյանները և հավելվածի մանրամասները
կոնտեյներ |
• Ցուցակել պատկերները
-[xr-vm_node0_RP0_CPU0:~]$docker պատկերներ ls • Ցուցակել տարաներ – [xr-vm_node0_RP0_CPU0:~]$docker ps• Վիճակագրություն -[xr-vm_node0_RP0_CPU0:~]$docker վիճակագրություն |
Router# show appmgr source-table
Router# show appmgr հավելվածի անունը հավելվածի անունը տեղեկատվության ամփոփում Router# show appmgr հավելվածի անունը հավելվածի անունը տեղեկատվության մանրամասն Router# show appmgr հավելվածի անունը հավելվածի անունը վիճակագրություն |
| • Տեղեկամատյաններ
-[xr-vm_node0_RP0_CPU0:~]$docker տեղեկամատյանները |
Router# show appmgr application-աղյուսակ
Router# show appmgr հավելվածի անունը հավելվածի անունը գերաններ |
| Ֆունկցիոնալություն | Ընդհանուր Docker հրամաններ | Դիմում Կառավարիչ Հրամաններ |
| Գործարկել նորը | • Կատարել – [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | Router#appmgr հավելվածի exec |
| հրաման
ներսում ա |
անունը հավելվածի անունը docker-exec-cmd | |
| վազում | ||
| կոնտեյներ | ||
| Դադարեցրեք հավելվածի բեռնարկղը | • Դադարեցրեք կոնտեյները – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Router#appmgr հավելվածի կանգառի անունը հավելվածի անունը |
| Սպանեք կիրառման կոնտեյները | • Սպանել կոնտեյներ – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Router#appmgr հավելվածի սպանության անունը հավելվածի անունը |
| Սկսեք հավելվածի բեռնարկղը | • Սկսել կոնտեյները – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Router#appmgr հավելվածի մեկնարկի անունը հավելվածի անունը |
| Ապաակտիվացնել հավելվածը | • Դադարեցրեք կոնտեյները – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Ուղղորդիչ # կազմաձևում
Երթուղիչ (կոնֆիգ)# ոչ appmgr հավելված հավելվածի անունը |
| • Հեռացնել կոնտեյները – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | Ուղղորդիչ (կոնֆիգ) #commit | |
| • Հեռացնել պատկերը – [xr-vm_node0_RP0_CPU0:~]$docker rmi պատկեր_անուն | ||
| Հեռացրեք հավելվածի պատկերը/RPM-ը | • Տեղահանել պատկերը – [xr-vm_node0_RP0_CPU0:~]$docker հավելվածի տեղահանում պատկեր_անուն | Router#appmgr փաթեթի ապատեղադրման փաթեթը
image_name-0.1.0-XR_7.3.1.x86_64 |
ՆշումՀավելվածի կառավարչի հրամանների օգտագործումը բացատրվում է «iPerf-ի հոսթինգ Docker Containers-ում ցանցի կատարողականությունը վերահսկելու համար՝ օգտագործելով Application Manager» բաժնում:
Docker-ի կազմաձևումը բազմաթիվ VRF-ներով
Այս բաժինը նկարագրում է, թե ինչպես կարող եք կարգավորել Docker-ը մի քանի VRF-ներով Cisco IOS XR-ում: Մի քանի VRF-ների կազմաձևման մասին տեղեկությունների համար տե՛ս «Բազմաթիվ VRF-ների կազմաձևում հավելվածների հոսթինգի համար» թեման:
Կոնֆիգուրացիա
Օգտագործեք հետևյալ քայլերը՝ XR-ի վրա բազմաբնույթ VRF Docker ստեղծելու և տեղակայելու համար:
- Ստեղծեք multi-VRF Docker NET_ADMIN և SYS_ADMIN արտոնություններով:
Հետևյալ նախկինումample, գործարկվել է Docker կոնտեյներ, որը պարունակում է երեք VRF (դեղին, կապույտ և կանաչ): Նախկինample-ն ենթադրում է, որ նախորդ «multivrfimage» դոկերի պատկերը տեղադրվել է appmgr փաթեթի տեղադրման հրամանի միջոցով:
Նշում.- /var/run/netns-ի ամբողջ բովանդակությունը հոսթից Docker-ի տեղադրումը խորհուրդ չի տրվում, քանի որ այն տեղադրում է XR-ին համապատասխանող ցանցերի բովանդակությունը և համակարգի ադմինիստրատորի հարթությունը Docker-ում:
- Դուք չպետք է ջնջեք VRF-ը Cisco IOS XR-ից, երբ այն օգտագործվում է Docker-ում: Եթե մեկ կամ մի քանի VRF-ներ ջնջվեն XR-ից, բազմաֆունկցիոնալ VRF Docker-ը չի կարող գործարկվել
- Ստուգեք, արդյոք Multi-VRF Docker-ը հաջողությամբ բեռնվել է:

- Միացեք multi-VRF Docker կոնտեյներին՝ կատարելով հետևյալ հրամանը.
Router# appmgr հավելվածի գործադիր անունը multivrfcontainer1 docker-exec-cmd /bin/bash/
Լռելյայնորեն, Docker-ը բեռնված է գլոբալ-vrf անվանատարածքում Cisco IOS XR-ում: - Ստուգեք, արդյոք մի քանի VRF-ները հասանելի են Docker-ից:


Դուք հաջողությամբ գործարկել եք Multi-VRF Docker-ը Cisco IOS XR-ում:
Փաստաթղթեր / ռեսուրսներ
![]() |
CISCO IOS XR հոստինգի հավելվածներ [pdf] Օգտագործողի ձեռնարկ IOS XR հոստինգ հավելվածներ, IOS XR, հոստինգ հավելվածներ, հավելվածներ |

