កម្មវិធីបង្ហោះ CISCO IOS XR
បង្ហោះកម្មវិធីនៅលើ IOS XR
ផ្នែកនេះពន្យល់អំពីប្រភេទផ្សេងគ្នានៃការបង្ហោះកម្មវិធី ហើយបង្ហាញពីរបៀបដែលកម្មវិធីសាមញ្ញអាចត្រូវបានបង្ហោះពីដើមកំណើត ឬនៅក្នុងកុងតឺន័រភាគីទីបីនៅលើ IOS XR ។
- កម្មវិធីបង្ហោះដោយប្រើ Docker Containers ។
- ការបង្ហោះកម្មវិធីកុងតឺន័រផ្អែកលើ Docker ។
កម្មវិធីបង្ហោះដោយប្រើ Docker Containers
កម្មវិធីបង្ហោះនៅលើ IOS XR គាំទ្រធុង docker ។ អ្នកអាចបង្កើតកុងតឺន័រផ្ទាល់ខ្លួនរបស់អ្នកនៅលើ IOS XR ដោយប្រើ docker និងកម្មវិធីបង្ហោះនៅក្នុងកុងតឺន័រ។ កម្មវិធីអាចត្រូវបានបង្កើតដោយប្រើការចែកចាយលីនុចណាមួយ។ នេះគឺសមល្អសម្រាប់កម្មវិធីដែលប្រើបណ្ណាល័យប្រព័ន្ធដែលខុសពីកម្មវិធីដែលផ្តល់ដោយ IOS XR root file ប្រព័ន្ធ។ Cisco NCS 540 គាំទ្រតែការបង្ហោះកម្មវិធីដែលមានមូលដ្ឋានលើ docker ប៉ុណ្ណោះ។
ការបង្ហោះកម្មវិធីកុងតឺន័រផ្អែកលើ Docker
ផ្នែកនេះណែនាំអំពីគំនិតនៃការបង្ហោះកម្មវិធីកុងតឺន័រ និងពិពណ៌នាអំពីដំណើរការការងាររបស់វា។ ការបង្ហោះកម្មវិធីកុងតឺន័រធ្វើឱ្យវាអាចទៅរួចសម្រាប់កម្មវិធីដែលត្រូវបានរៀបចំនៅក្នុងបរិយាកាសផ្ទាល់ខ្លួនរបស់ពួកគេ និងដំណើរការចន្លោះ (namespace) នៅក្នុងធុងលីនុចនៅលើ Cisco IOS XR ។ អ្នកអភិវឌ្ឍន៍កម្មវិធីមានការគ្រប់គ្រងទាំងស្រុងលើបរិយាកាសអភិវឌ្ឍន៍កម្មវិធី ហើយអាចប្រើជម្រើសនៃការចែកចាយលីនុច។ កម្មវិធីត្រូវបានដាច់ដោយឡែកពីដំណើរការយន្តហោះត្រួតពិនិត្យ IOS XR; ប៉ុន្តែពួកគេអាចភ្ជាប់ទៅបណ្តាញខាងក្រៅ XR តាមរយៈចំណុចប្រទាក់ XR GigE ។ កម្មវិធីក៏អាចចូលប្រើក្នុងស្រុកបានយ៉ាងងាយស្រួលផងដែរ។ file ប្រព័ន្ធនៅលើ IOS XR ។
ការប្រើប្រាស់ Docker សម្រាប់បង្ហោះកម្មវិធីនៅលើ Cisco IOS XR
Docker គឺជាកុងតឺន័រដែលប្រើសម្រាប់បង្ហោះកម្មវិធីនៅលើ Cisco IOS XR ។ Docker ផ្តល់នូវភាពឯកោសម្រាប់ដំណើរការកម្មវិធីពីដំណើរការម៉ាស៊ីនមូលដ្ឋាននៅលើ XR ដោយប្រើ namespaces បណ្តាញលីនុច។
ត្រូវការ Docker នៅលើ Cisco IOS XR
Docker កំពុងក្លាយជាគំរូវេចខ្ចប់ដែលចូលចិត្តក្នុងឧស្សាហកម្មសម្រាប់កម្មវិធីនៅក្នុងកន្លែងនិម្មិត។ Docker ផ្តល់នូវមូលដ្ឋានគ្រឹះសម្រាប់ការគ្រប់គ្រងវដ្តជីវិតកម្មវិធីដោយស្វ័យប្រវត្តិ។ Docker ធ្វើតាមវិធីសាស្រ្តស្រទាប់ដែលមានរូបភាពមូលដ្ឋាននៅខាងក្រោមដែលគាំទ្រស្រទាប់នៃកម្មវិធីនៅខាងលើ។ រូបភាពមូលដ្ឋានអាចរកបានជាសាធារណៈនៅក្នុងឃ្លាំង អាស្រ័យលើប្រភេទនៃកម្មវិធីដែលអ្នកចង់ដំឡើងនៅលើកំពូល។ អ្នកអាចរៀបចំរូបភាព docker ដោយប្រើសន្ទស្សន៍ docker និងបញ្ជីឈ្មោះ។ Docker ផ្តល់នូវលំហូរការងារដូច git សម្រាប់បង្កើតកម្មវិធីកុងតឺន័រ និងគាំទ្រយន្តការ "ការធ្វើបច្ចុប្បន្នភាពស្តើង" ដែលមានតែភាពខុសគ្នានៃកូដប្រភពប៉ុណ្ណោះដែលត្រូវបានអាប់ដេត ដែលនាំឱ្យមានការអាប់ដេតកាន់តែលឿន។ Docker ក៏ផ្តល់នូវយន្តការ "ទាញយកស្តើង" ដែលកម្មវិធីថ្មីៗត្រូវបានទាញយកលឿនជាងមុន ដោយសារការចែករំលែកនៃស្រទាប់ docker មូលដ្ឋានទូទៅរវាងធុង docker ច្រើន។ ការចែករំលែកស្រទាប់ docker រវាង docker containers ច្រើននាំអោយមានកម្រិតទាបសម្រាប់ docker containers នៅលើ XR។
ស្ថាបត្យកម្ម Docker នៅលើ Cisco IOS XR
រូបខាងក្រោមបង្ហាញពីស្ថាបត្យកម្ម docker នៅលើ IOS XR។
កម្មវិធីគោលពីរសម្រាប់កម្មវិធីដែលត្រូវបង្ហោះត្រូវបានដំឡើងនៅខាងក្នុង docker container។
បង្ហោះកម្មវិធីនៅក្នុង Docker Containers
រូបខាងក្រោមបង្ហាញពីដំណើរការការងារសម្រាប់ការបង្ហោះកម្មវិធីនៅក្នុង Docker containers នៅលើ IOS XR។
- អ្នកចត file នៅក្នុងឃ្លាំងប្រភពត្រូវបានប្រើដើម្បីបង្កើតប្រព័ន្ធគោលពីរកម្មវិធី file នៅលើម៉ាស៊ីនមេ (ម៉ាស៊ីន docker build) របស់អ្នក។
- កម្មវិធីគោលពីរ file ត្រូវបានរុញចូលទៅក្នុងបញ្ជីឈ្មោះរូបភាព docker ។
- កម្មវិធីគោលពីរ file ត្រូវបានទាញចេញពីបញ្ជីឈ្មោះរូបភាព docker ហើយចម្លងទៅកុងតឺន័រ docker នៅលើ XR (ម៉ាស៊ីនគោលដៅម៉ាស៊ីន docker) ។
- កម្មវិធីត្រូវបានបង្កើត និងបង្ហោះនៅក្នុង docker container នៅលើ XR។
ការធ្វើបច្ចុប្បន្នភាពកម្មវិធីនៅក្នុង Docker Containers
រូបខាងក្រោមបង្ហាញពីដំណើរការការងារសម្រាប់ការអាប់ដេតកម្មវិធីដែលបង្ហោះក្នុង docker containers។
- ការអាប់ដេតកម្មវិធីត្រូវបានបង្កើតជាការអាប់ដេត libs មូលដ្ឋាន file (ការធ្វើបច្ចុប្បន្នភាពតំបន់ដីសណ្ត file) ហើយបានរុញទៅបញ្ជីឈ្មោះរូបភាព docker ។
- ការធ្វើបច្ចុប្បន្នភាពតំបន់ដីសណ្ត file (មានតែភាពខុសគ្នាក្នុងកូដកម្មវិធី) ត្រូវបានទាញចេញពីបញ្ជីឈ្មោះរូបភាព docker ហើយចម្លងទៅកុងតឺន័រ docker នៅលើ XR (ម៉ាស៊ីនគោលដៅ docker engine)។
- កុងតឺន័រ docker ត្រូវបានចាប់ផ្តើមឡើងវិញជាមួយនឹងការអាប់ដេត delta file.
បង្ហោះ TPA ដោយប្រើកម្មវិធីគ្រប់គ្រងកម្មវិធី
តារាងទី 1: តារាងប្រវត្តិលក្ខណៈពិសេស
លក្ខណៈ ឈ្មោះ | ចេញផ្សាយព័ត៌មាន | លក្ខណៈ ការពិពណ៌នា |
សេវាកម្ម Docker Daemon តាមតម្រូវការ | ចេញផ្សាយ 7.5.1 | ចាប់ពីការចេញផ្សាយនេះតទៅ ស
សេវាដេមិន Docker ចាប់ផ្តើមនៅលើរ៉ោតទ័រលុះត្រាតែអ្នកកំណត់រចនាសម្ព័ន្ធកម្មវិធីបង្ហោះភាគីទីបីដោយប្រើ appmgr បញ្ជា។ សេវាកម្មតាមតម្រូវការបែបនេះ ធ្វើឱ្យធនធានប្រព័ន្ធប្រតិបត្តិការប្រសើរដូចជា CPU អង្គចងចាំ និងថាមពល។ នៅក្នុងការចេញផ្សាយមុននេះ សេវាកម្មដេមិន Docker បានចាប់ផ្តើមដោយស្វ័យប្រវត្តិក្នុងអំឡុងពេលដែលរ៉ោតទ័រចាប់ផ្ដើម។ |
នៅក្នុងការចេញផ្សាយមុន កម្មវិធីត្រូវបានបង្ហោះ និងគ្រប់គ្រងដោយពាក្យបញ្ជា Docker ។ ពាក្យបញ្ជា Docker ទាំងនេះត្រូវបានប្រតិបត្តិនៅក្នុង bash shell នៃ Kernel ដែលរៀបចំកម្មវិធី Cisco IOS XR ផងដែរ។ ជាមួយនឹងការណែនាំអំពីកម្មវិធីគ្រប់គ្រងកម្មវិធី ឥឡូវនេះវាអាចទៅរួចក្នុងការគ្រប់គ្រងការបង្ហោះកម្មវិធីភាគីទីបី និងដំណើរការរបស់ពួកគេតាមរយៈ Cisco IOS XR CLIs ។ ជាមួយនឹងលក្ខណៈពិសេសនេះ កម្មវិធីភាគីទីបីដែលបានធ្វើឱ្យសកម្មទាំងអស់អាចចាប់ផ្តើមឡើងវិញដោយស្វ័យប្រវត្តិបន្ទាប់ពីការផ្ទុករ៉ោតទ័រឡើងវិញ ឬការផ្លាស់ប្តូរ RP ។ ការចាប់ផ្តើមឡើងវិញដោយស្វ័យប្រវត្តិនៃកម្មវិធីនេះធានានូវដំណើរការរលូននៃកម្មវិធីដែលបានបង្ហោះ។
ពាក្យបញ្ជាដែលបានគាំទ្រនៅលើកម្មវិធីគ្រប់គ្រងកម្មវិធី
សម្រាប់រាល់ពាក្យបញ្ជារបស់កម្មវិធីគ្រប់គ្រងកម្មវិធី ឬការកំណត់រចនាសម្ព័ន្ធដែលបានប្រតិបត្តិ កម្មវិធីគ្រប់គ្រងកម្មវិធីអនុវត្តសកម្មភាពដែលបានស្នើសុំដោយភ្ជាប់ជាមួយដេមិន Docker តាមរយៈរន្ធ Docker ។ តារាងខាងក្រោមរាយបញ្ជីមុខងារ Docker container ពាក្យបញ្ជា 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 images ls • បង្កើតធុងនៅលើរូបភាព – [xr-vm_node0_RP0_CPU0:~]$docker បង្កើត រូបភាព_ឈ្មោះ |
រ៉ោតទ័រ # កំណត់រចនាសម្ព័ន្ធ
Router(config)#appmgr Router(config-appmgr)#application app_name Router(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 | Router(config-application)#commit | |
View បញ្ជី ស្ថិតិ កំណត់ហេតុ និងព័ត៌មានលម្អិតនៃកម្មវិធី
ធុង |
• រាយរូបភាព
-[xr-vm_node0_RP0_CPU0:~]$docker images ls • បញ្ជីធុង - [xr-vm_node0_RP0_CPU0:~]$docker ps• ស្ថិតិ -[xr-vm_node0_RP0_CPU0:~]$docker stats |
រ៉ោតទ័រ # បង្ហាញតារាងប្រភព appmgr
រ៉ោតទ័រ # បង្ហាញឈ្មោះកម្មវិធី appmgr app_name សង្ខេបព័ត៌មាន រ៉ោតទ័រ # បង្ហាញឈ្មោះកម្មវិធី appmgr app_name ពត៌មានលំអិត រ៉ោតទ័រ # បង្ហាញឈ្មោះកម្មវិធី appmgr app_name ស្ថិតិ |
• កំណត់ហេតុ
-[xr-vm_node0_RP0_CPU0:~]$docker logs |
រ៉ោតទ័រ # បង្ហាញតារាងកម្មវិធី appmgr
រ៉ោតទ័រ # បង្ហាញឈ្មោះកម្មវិធី appmgr app_name កំណត់ហេតុ |
មុខងារ | ពាក្យបញ្ជា Docker ទូទៅ | ការដាក់ពាក្យ អ្នកគ្រប់គ្រង ពាក្យបញ្ជា |
ដំណើរការថ្មី។ | • ប្រតិបត្តិ – [xr-vm_node0_RP0_CPU0:~] $docker exec -it my_container_id | Router#appmgr កម្មវិធីប្រតិបត្តិ |
បញ្ជា
នៅខាងក្នុង ក |
ឈ្មោះ app_name docker-exec-cmd | |
កំពុងរត់ | ||
ធុង | ||
បញ្ឈប់ធុងកម្មវិធី | • Stop container – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | ឈ្មោះបញ្ឈប់កម្មវិធី Router#appmgr app_name |
សម្លាប់ធុងដាក់កម្មវិធី | • Kill container – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Router#appmgr កម្មវិធីសម្លាប់ឈ្មោះ app_name |
ចាប់ផ្តើមធុងកម្មវិធី | • ចាប់ផ្តើមកុងតឺន័រ – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | ឈ្មោះចាប់ផ្តើមកម្មវិធី Router#appmgr app_name |
បិទដំណើរការកម្មវិធី | • Stop container – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | រ៉ោតទ័រ # កំណត់រចនាសម្ព័ន្ធ
រ៉ោតទ័រ (កំណត់រចនាសម្ព័ន្ធ) # គ្មានកម្មវិធី appmgr app_name |
• យកធុងចេញ – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | រ៉ោតទ័រ (កំណត់រចនាសម្ព័ន្ធ) # ប្តេជ្ញា | |
• លុបរូបភាព – [xr-vm_node0_RP0_CPU0:~]$docker rmi រូបភាព_ឈ្មោះ | ||
លុបកម្មវិធីរូបភាព/RPM | • លុបការដំឡើងរូបភាព – [xr-vm_node0_RP0_CPU0:~] $docker app uninstall រូបភាព_ឈ្មោះ | Router#appmgr package uninstall package
image_name-0.1.0-XR_7.3.1.x86_64 |
ចំណាំ៖ ការប្រើប្រាស់ពាក្យបញ្ជាកម្មវិធីគ្រប់គ្រងកម្មវិធីត្រូវបានពន្យល់នៅក្នុងផ្នែក "ការបង្ហោះ iPerf នៅក្នុង Docker Containers ដើម្បីត្រួតពិនិត្យដំណើរការបណ្តាញដោយប្រើកម្មវិធីគ្រប់គ្រងកម្មវិធី" ផ្នែក។
កំណត់រចនាសម្ព័ន្ធ Docker ជាមួយ VRFs ច្រើន។
ផ្នែកនេះពិពណ៌នាអំពីរបៀបដែលអ្នកអាចកំណត់រចនាសម្ព័ន្ធ Docker ជាមួយ VRFs ច្រើននៅលើ Cisco IOS XR ។ សម្រាប់ព័ត៌មានស្តីពីការកំណត់រចនាសម្ព័ន្ធ VRFs ច្រើន សូមមើល ការកំណត់រចនាសម្ព័ន្ធ VRF ច្រើនសម្រាប់ប្រធានបទកម្មវិធីបង្ហោះ។
ការកំណត់រចនាសម្ព័ន្ធ
ប្រើជំហានខាងក្រោមដើម្បីបង្កើត និងដាក់ពង្រាយ Multi-VRF Docker នៅលើ XR។
- បង្កើត Multi-VRF Docker ជាមួយ NET_ADMIN និង SYS_ADMIN សិទ្ធិ។
នៅក្នុង example កុងតឺន័រ Docker ដែលមាន VRF បី (លឿង ខៀវ និងបៃតង) ត្រូវបានដាក់ឱ្យដំណើរការ។ អតីតample សន្មត់ថារូបភាព docker “multivrfimage” ពីមុនត្រូវបានដំឡើងដោយប្រើពាក្យបញ្ជាដំឡើងកញ្ចប់ appmgr ។
ចំណាំ៖- ការភ្ជាប់មាតិកាទាំងមូលនៃ /var/run/netns ពី host ទៅ Docker មិនត្រូវបានណែនាំទេ ព្រោះវាភ្ជាប់មាតិកានៃ netns ដែលត្រូវនឹង XR និងប្រព័ន្ធគ្រប់គ្រងប្រព័ន្ធទៅក្នុង Docker ។
- អ្នកមិនគួរលុប VRF ចេញពី Cisco IOS XR នៅពេលដែលវាត្រូវបានប្រើនៅក្នុង Docker នោះទេ។ ប្រសិនបើ VRF មួយ ឬច្រើនត្រូវបានលុបចេញពី XR នោះ multi-VRF Docker មិនអាចត្រូវបានដាក់ឱ្យដំណើរការបានទេ។
- ផ្ទៀងផ្ទាត់ថាតើ multi-VRF Docker ត្រូវបានផ្ទុកដោយជោគជ័យ។
- ភ្ជាប់ទៅធុងពហុ VRF Docker ដោយប្រតិបត្តិពាក្យបញ្ជាខាងក្រោម។
Router# appmgr កម្មវិធី exec ឈ្មោះ multivrfcontainer1 docker-exec-cmd /bin/bash/
តាមលំនាំដើម Docker ត្រូវបានផ្ទុកក្នុង global-vrf namespace នៅលើ Cisco IOS XR។ - ផ្ទៀងផ្ទាត់ថាតើ VRFs ច្រើនអាចចូលប្រើបានពី Docker ដែរឬទេ។
អ្នកបានបើកដំណើរការ Multi-VRF Docker ដោយជោគជ័យនៅលើ Cisco IOS XR។
ឯកសារ/ធនធាន
![]() |
កម្មវិធីបង្ហោះ CISCO IOS XR [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់ កម្មវិធីបង្ហោះ IOS XR, IOS XR, កម្មវិធីបង្ហោះ, កម្មវិធី |