CISCO IOS XR ແອັບພລິເຄຊັນໂຮດຕິ້ງ

ການເປັນເຈົ້າພາບແອັບພລິເຄຊັນໃນ IOS XR
ພາກນີ້ອະທິບາຍເຖິງປະເພດຂອງແອັບພລິເຄຊັນທີ່ໂຮດຕິ້ງ, ແລະສະແດງໃຫ້ເຫັນວ່າແອັບພລິເຄຊັນທີ່ງ່າຍດາຍສາມາດຖືກໂຮດໂດຍພື້ນເມືອງຫຼືຢູ່ໃນຖັງຂອງພາກສ່ວນທີສາມໃນ IOS XR.
- ແອັບພລິເຄຊັນ Hosting ໂດຍໃຊ້ Docker Containers.
- Docker-Based Container Application Hosting.
ແອັບພລິເຄຊັນ Hosting ໂດຍໃຊ້ Docker Containers
ແອັບພລິເຄຊັນໂຮດຢູ່ໃນ IOS XR ຮອງຮັບ docker containers. ທ່ານສາມາດສ້າງ container ຂອງທ່ານເອງໃນ IOS XR ໂດຍໃຊ້ docker, ແລະ host applications ພາຍໃນ container. ແອັບພລິເຄຊັນສາມາດພັດທະນາໄດ້ໂດຍໃຊ້ການແຈກຢາຍ Linux ໃດ. ນີ້ແມ່ນເຫມາະສົມດີສໍາລັບແອັບພລິເຄຊັນທີ່ໃຊ້ຫ້ອງສະຫມຸດລະບົບທີ່ແຕກຕ່າງຈາກທີ່ສະຫນອງໃຫ້ໂດຍ IOS XR root file ລະບົບ. Cisco NCS 540 ສະຫນັບສະຫນູນພຽງແຕ່ຄໍາຮ້ອງສະຫມັກທີ່ອີງໃສ່ docker.
Docker-Based Container Application Hosting
ພາກນີ້ແນະນໍາແນວຄວາມຄິດຂອງ container application hosting ແລະອະທິບາຍຂັ້ນຕອນການເຮັດວຽກຂອງມັນ. Container application hosting ເຮັດໃຫ້ມັນເປັນໄປໄດ້ສໍາລັບແອັບພລິເຄຊັນທີ່ຈະຖືກໂຮດຢູ່ໃນສະພາບແວດລ້ອມຂອງຕົນເອງແລະພື້ນທີ່ປະມວນຜົນ (namespace) ພາຍໃນຖັງ Linux ໃນ Cisco IOS XR. ຜູ້ພັດທະນາແອັບພລິເຄຊັນມີການຄວບຄຸມຢ່າງສົມບູນກ່ຽວກັບສະພາບແວດລ້ອມການພັດທະນາແອັບພລິເຄຊັນ, ແລະສາມາດນໍາໃຊ້ການແຈກຢາຍ Linux ຂອງທາງເລືອກ. ແອັບພລິເຄຊັນຖືກແຍກອອກຈາກຂະບວນການຍົນຄວບຄຸມ IOS XR; ທັນ, ພວກເຂົາສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍພາຍນອກ XR ຜ່ານການໂຕ້ຕອບ XR GigE. ຄໍາຮ້ອງສະຫມັກຍັງສາມາດເຂົ້າເຖິງທ້ອງຖິ່ນໄດ້ຢ່າງງ່າຍດາຍ file ລະບົບໃນ IOS XR.
ການນໍາໃຊ້ Docker ສໍາລັບໂຮດແອັບພລິເຄຊັນໃນ Cisco IOS XR
Docker ແມ່ນກ່ອງບັນຈຸທີ່ໃຊ້ສໍາລັບການໂຮດແອັບພລິເຄຊັນໃນ Cisco IOS XR. Docker ສະຫນອງການໂດດດ່ຽວສໍາລັບຂະບວນການຄໍາຮ້ອງສະຫມັກຈາກຂະບວນການໂຮດທີ່ຕິດພັນໃນ XR ໂດຍໃຊ້ namespaces ເຄືອຂ່າຍ Linux.
ຕ້ອງການ Docker ໃນ Cisco IOS XR
Docker ກໍາລັງກາຍເປັນຕົວແບບການຫຸ້ມຫໍ່ທີ່ອຸດສາຫະກໍາມັກສໍາລັບຄໍາຮ້ອງສະຫມັກໃນພື້ນທີ່ virtualization. Docker ໃຫ້ພື້ນຖານສໍາລັບການຄຸ້ມຄອງວົງຈອນຊີວິດຂອງແອັບພລິເຄຊັນໂດຍອັດຕະໂນມັດ. Docker ປະຕິບັດຕາມວິທີການເປັນຊັ້ນໆທີ່ປະກອບດ້ວຍຮູບພາບພື້ນຖານຢູ່ທາງລຸ່ມທີ່ສະຫນັບສະຫນູນຊັ້ນຂອງແອັບພລິເຄຊັນຢູ່ເທິງ. ຮູບພາບພື້ນຖານແມ່ນມີໃຫ້ສາທາລະນະຢູ່ໃນບ່ອນເກັບມ້ຽນ, ຂຶ້ນກັບປະເພດຂອງແອັບພລິເຄຊັນທີ່ທ່ານຕ້ອງການຕິດຕັ້ງຢູ່ເທິງ. ທ່ານສາມາດຈັດການຮູບພາບ docker ໂດຍໃຊ້ດັດຊະນີ docker ແລະການລົງທະບຽນ. Docker ສະຫນອງຂະບວນການເຮັດວຽກຄ້າຍຄື git ສໍາລັບການພັດທະນາຄໍາຮ້ອງສະຫມັກບັນຈຸແລະສະຫນັບສະຫນູນກົນໄກ "ການປັບປຸງບາງໆ", ບ່ອນທີ່ມີພຽງແຕ່ຄວາມແຕກຕ່າງຂອງລະຫັດແຫຼ່ງທີ່ຖືກປັບປຸງ, ນໍາໄປສູ່ການຍົກລະດັບໄວຂຶ້ນ. Docker ຍັງໃຫ້ກົນໄກ "ການດາວໂຫຼດບາງໆ", ບ່ອນທີ່ແອັບພລິເຄຊັນໃຫມ່ຖືກດາວໂຫລດໄວຂຶ້ນຍ້ອນການແບ່ງປັນຊັ້ນ docker ພື້ນຖານທົ່ວໄປລະຫວ່າງຖັງ docker ຫຼາຍ. ການແບ່ງປັນຊັ້ນ docker ລະຫວ່າງຕູ້ບັນຈຸ docker ຫຼາຍອັນເຮັດໃຫ້ການເກັບຂໍ້ມູນຕ່ໍາສໍາລັບ docker containers ໃນ XR.
Docker ສະຖາປັດຕະຍະກໍາໃນ Cisco IOS XR
ຕົວເລກຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນສະຖາປັດຕະຍະກໍາ docker ໃນ IOS XR.

ໄບນາຣີຂອງແອັບພລິເຄຊັນສຳລັບແອັບພລິເຄຊັນທີ່ຈະຖືກໂຮດແມ່ນໄດ້ຖືກຕິດຕັ້ງພາຍໃນ docker container.
ການເປັນເຈົ້າພາບຄໍາຮ້ອງສະຫມັກໃນ Docker Containers
ຕົວເລກຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນຂັ້ນຕອນການເຮັດວຽກສໍາລັບການໂຮດແອັບພລິເຄຊັນໃນ Docker containers ໃນ IOS XR.

- Docker file ໃນ repository ແຫຼ່ງແມ່ນຖືກນໍາໃຊ້ເພື່ອສ້າງ binary ຄໍາຮ້ອງສະຫມັກ file ໃນເຄື່ອງໂຮດ (ສ້າງເຄື່ອງຈັກ docker) ຂອງທ່ານ.
- ຄໍາຮ້ອງສະຫມັກຖານສອງ file ຖືກຍູ້ເຂົ້າໄປໃນການລົງທະບຽນຮູບພາບ docker.
- ຄໍາຮ້ອງສະຫມັກຖານສອງ file ຖືກດຶງອອກຈາກການລົງທະບຽນຮູບພາບ docker ແລະຄັດລອກໄປທີ່ docker container ໃນ XR (docker engine target host).
- ແອັບພລິເຄຊັນຖືກສ້າງຂຶ້ນແລະເປັນເຈົ້າພາບໃນ docker container ໃນ XR.
ການປັບປຸງແອັບພລິເຄຊັນໃນ Docker Containers
ຕົວເລກຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນຂັ້ນຕອນການເຮັດວຽກສໍາລັບການອັບເດດແອັບພລິເຄຊັນທີ່ໂຮດຢູ່ໃນ docker containers.
- ການປັບປຸງແອັບພລິເຄຊັນແມ່ນສ້າງເປັນການປັບປຸງ libs ພື້ນຖານ file (ການປັບປຸງ delta file) ແລະ pushed ກັບ docker image registry.
- ອັບເດດ delta file (ມີຄວາມແຕກຕ່າງພຽງແຕ່ໃນລະຫັດແອັບພລິເຄຊັນ) ຖືກດຶງອອກຈາກການລົງທະບຽນຮູບພາບ docker ແລະຄັດລອກໃສ່ docker containers ໃນ XR (docker engine target host).
- ກ່ອງບັນຈຸ docker ເລີ່ມຕົ້ນໃໝ່ດ້ວຍການອັບເດດ delta file.
ການເປັນເຈົ້າພາບຂອງ TPA ໂດຍໃຊ້ Application Manager
ຕາຕະລາງ 1: ຕາຕະລາງປະຫວັດຄຸນສົມບັດ
| ຄຸນສົມບັດ ຊື່ | ປ່ອຍຂໍ້ມູນ | ຄຸນສົມບັດ ລາຍລະອຽດ |
| ບໍລິການ Docker Daemon ຕາມຄວາມຕ້ອງການ | ປ່ອຍ 7.5.1 | ຈາກການປ່ອຍນີ້ເປັນຕົ້ນໄປ, ໄດ້
ບໍລິການ Docker daemon ເລີ່ມຕົ້ນໃນ router ພຽງແຕ່ຖ້າທ່ານຕັ້ງຄ່າແອັບພລິເຄຊັນ hosting ພາກສ່ວນທີສາມໂດຍໃຊ້ ແອັບmgr ຄໍາສັ່ງ. ການບໍລິການຕາມຄວາມຕ້ອງການດັ່ງກ່າວຈະເພີ່ມປະສິດທິພາບຊັບພະຍາກອນຂອງລະບົບປະຕິບັດການເຊັ່ນ CPU, ໜ່ວຍຄວາມຈຳ ແລະພະລັງງານ. ໃນການປ່ອຍກ່ອນຫນ້ານັ້ນ, ບໍລິການ Docker daemon ເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນລະຫວ່າງການເປີດ router. |
ໃນສະບັບທີ່ຜ່ານມາ, ແອັບພລິເຄຊັນຖືກໂຮດແລະຄວບຄຸມໂດຍຄໍາສັ່ງ Docker. ຄໍາສັ່ງ Docker ເຫຼົ່ານີ້ຖືກປະຕິບັດຢູ່ໃນ bash shell ຂອງ Kernel ທີ່ເປັນເຈົ້າພາບຊອບແວ Cisco IOS XR. ດ້ວຍການແນະນໍາຂອງ Application Manager, ຕອນນີ້ສາມາດຈັດການແອັບພລິເຄຊັນຂອງພາກສ່ວນທີສາມ ແລະການເຮັດວຽກຂອງເຂົາເຈົ້າຜ່ານ Cisco IOS XR CLIs. ດ້ວຍຄຸນສົມບັດນີ້, ແອັບພລິເຄຊັນພາກສ່ວນທີສາມທັງໝົດທີ່ເປີດໃຊ້ແລ້ວສາມາດຣີສະຕາດໄດ້ໂດຍອັດຕະໂນມັດຫຼັງຈາກ router reload ຫຼື switchover RP. ການຣີສະຕາດອັດຕະໂນມັດຂອງແອັບພລິເຄຊັນນີ້ ຮັບປະກັນການເຮັດວຽກຂອງແອັບພລິເຄຊັນທີ່ເປັນເຈົ້າພາບ.
ຄໍາສັ່ງທີ່ຮອງຮັບໃນຕົວຈັດການແອັບພລິເຄຊັນ
ສໍາລັບທຸກຄໍາສັ່ງຜູ້ຈັດການແອັບພລິເຄຊັນຫຼືການຕັ້ງຄ່າທີ່ຖືກປະຕິບັດ, ຜູ້ຈັດການແອັບພລິເຄຊັນປະຕິບັດການຮ້ອງຂໍໂດຍການຕິດຕໍ່ກັບ daemon Docker ຜ່ານ socket Docker. ຕາຕະລາງຕໍ່ໄປນີ້ຈະສະແດງການທໍາງານຂອງ Docker container, ຄໍາສັ່ງ Docker ທົ່ວໄປທີ່ຖືກນໍາໃຊ້ໃນສະບັບທີ່ຜ່ານມາ, ແລະຄໍາສັ່ງຜູ້ຈັດການຄໍາຮ້ອງສະຫມັກທີ່ທຽບເທົ່າທີ່ສາມາດນໍາໃຊ້ໄດ້ໃນປັດຈຸບັນ:
| ການທໍາງານ | ຄໍາສັ່ງ Docker ທົ່ວໄປ | ຄໍາຮ້ອງສະຫມັກ ຜູ້ຈັດການ ຄໍາສັ່ງ |
| ຕິດຕັ້ງແອັບພລິເຄຊັນ RPM | NA | Router#appmgr package ຕິດຕັ້ງ rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
| ຕັ້ງຄ່າ ແລະເປີດໃຊ້ແອັບພລິເຄຊັນ | • ໂຫຼດຮູບ – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/image_name.tar
• ຢືນຢັນຮູບພາບໃນເຣົາເຕີ – xr-vm_node0_RP0_CPU0:~]$docker images ls • ສ້າງ container ເທິງຮູບ – [xr-vm_node0_RP0_CPU0:~]$docker ສ້າງ image_name |
Router#config
Router(config)#appmgr Router(config-appmgr)#application app_name Router(config-application)#activate type docker source image_name docker-run-opts “–net=host” docker-run-cmd “iperf3 -s -d” |
| • ເລີ່ມຕົ້ນ container – [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 ສະຖິຕິ |
Router#show appmgr source-table
Router#ສະແດງຊື່ແອັບພລິເຄຊັນ appmgr app_name ສະຫຼຸບຂໍ້ມູນ Router#ສະແດງຊື່ແອັບພລິເຄຊັນ appmgr app_name ລາຍລະອຽດຂໍ້ມູນ Router#ສະແດງຊື່ແອັບພລິເຄຊັນ appmgr app_name ສະຖິຕິ |
| • ບັນທຶກ
-[xr-vm_node0_RP0_CPU0:~]$docker ບັນທຶກ |
Router#show appmgr application-table
Router#ສະແດງຊື່ແອັບພລິເຄຊັນ appmgr app_name ໄມ້ທ່ອນ |
| ການທໍາງານ | ຄໍາສັ່ງ Docker ທົ່ວໄປ | ຄໍາຮ້ອງສະຫມັກ ຜູ້ຈັດການ ຄໍາສັ່ງ |
| ດໍາເນີນການໃຫມ່ | • ດຳເນີນການ – [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | Router#appmgr application exec |
| ຄໍາສັ່ງ
ພາຍໃນ a |
ຊື່ app_name docker-exec-cmd | |
| ແລ່ນ | ||
| ບັນຈຸ | ||
| ຢຸດເຊົາການບັນຈຸຄໍາຮ້ອງສະຫມັກ | • Stop container – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Router#appmgr ຊື່ຢຸດແອັບພລິເຄຊັນ app_name |
| ຂ້າຕູ້ບັນຈຸຄໍາຮ້ອງສະຫມັກ | • ຖັງຂ້າ – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Router#appmgr ແອັບພລິເຄຊັນຂ້າຊື່ app_name |
| ເລີ່ມກ່ອງບັນຈຸແອັບພລິເຄຊັນ | • ເລີ່ມຕົ້ນ container – [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 | Router#configure
Router(config)#ບໍ່ມີແອັບພລິເຄຊັນ appmgr app_name |
| • ເອົາກ່ອງບັນຈຸ – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | Router(config)#commit | |
| • ເອົາຮູບອອກ – [xr-vm_node0_RP0_CPU0:~]$docker rmi image_name | ||
| ຖອນການຕິດຕັ້ງຮູບພາບ/RPM ຂອງແອັບພລິເຄຊັນ | • ຖອນການຕິດຕັ້ງຮູບພາບ – [xr-vm_node0_RP0_CPU0:~] $docker app ຖອນການຕິດຕັ້ງ image_name | ຖອນການຕິດຕັ້ງແພັກເກດ Router#appmgr
image_name-0.1.0-XR_7.3.1.x86_64 |
ໝາຍເຫດ: ການນໍາໃຊ້ຄໍາສັ່ງຜູ້ຈັດການແອັບພລິເຄຊັນໄດ້ຖືກອະທິບາຍຢູ່ໃນສ່ວນ "Hosting iPerf ໃນ Docker Containers ເພື່ອຕິດຕາມການປະຕິບັດເຄືອຂ່າຍໂດຍໃຊ້ Application Manager".
ການຕັ້ງຄ່າ Docker ດ້ວຍ VRF ຫຼາຍອັນ
ພາກນີ້ອະທິບາຍວິທີທີ່ທ່ານສາມາດ configure Docker ດ້ວຍ VRFs ຫຼາຍອັນໃນ Cisco IOS XR. ສໍາລັບຂໍ້ມູນກ່ຽວກັບການຕັ້ງຄ່າ VRFs ຫຼາຍ, ເບິ່ງ Configuring Multiple VRFs ສໍາລັບຫົວຂໍ້ Application Hosting.
ການຕັ້ງຄ່າ
ໃຊ້ຂັ້ນຕອນຕໍ່ໄປນີ້ເພື່ອສ້າງ ແລະນຳໃຊ້ multi-VRF Docker ເທິງ XR.
- ສ້າງ Docker ຫຼາຍ VRF ດ້ວຍສິດທິພິເສດ NET_ADMIN ແລະ SYS_ADMIN.
ໃນຕົວຢ່າງຕໍ່ໄປນີ້ample, ກ່ອງບັນຈຸ Docker ທີ່ບັນຈຸສາມ VRF (ສີເຫຼືອງ, ສີຟ້າ, ແລະສີຂຽວ) ຖືກເປີດຕົວ. ອະດີດample ສົມມຸດວ່າຮູບພາບ docker "multivrimage" ທີ່ຜ່ານມາໄດ້ຖືກຕິດຕັ້ງໂດຍໃຊ້ຄໍາສັ່ງຕິດຕັ້ງຊຸດ appmgr.
ໝາຍເຫດ:- ການຕິດຕັ້ງເນື້ອຫາທັງໝົດຂອງ /var/run/netns ຈາກໂຮສໄປຫາ Docker ແມ່ນບໍ່ແນະນຳ, ເພາະວ່າມັນເຊື່ອມຕໍ່ເນື້ອຫາຂອງ netns ທີ່ສອດຄ້ອງກັບ XR ແລະລະບົບຜູ້ເບິ່ງແຍງລະບົບເຂົ້າໄປໃນ Docker.
- ທ່ານບໍ່ຄວນລຶບ VRF ຈາກ Cisco IOS XR ເມື່ອມັນຖືກໃຊ້ໃນ Docker. ຖ້າຫນຶ່ງຫຼືຫຼາຍ VRFs ຖືກລຶບອອກຈາກ XR, multi-VRF Docker ບໍ່ສາມາດເປີດຕົວໄດ້
- ກວດສອບວ່າ multi-VRF Docker ໄດ້ຮັບການໂຫຼດສໍາເລັດ.

- ເຊື່ອມຕໍ່ກັບ multi-VRF Docker container ໂດຍການດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້.
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, ແອັບພລິເຄຊັນໂຮດຕິ້ງ, ແອັບພລິເຄຊັນ |

