แอปพลิเคชั่นโฮสติ้ง CISCO IOS XR

การโฮสต์แอปพลิเคชันบน IOS XR
ในส่วนนี้จะอธิบายประเภทต่างๆ ของการโฮสต์แอปพลิเคชัน และสาธิตวิธีการโฮสต์แอปพลิเคชันแบบง่ายแบบเนทีฟหรือในคอนเทนเนอร์ของบริษัทอื่นบน IOS XR
- การโฮสต์แอปพลิเคชันโดยใช้คอนเทนเนอร์ Docker
- การโฮสต์แอปพลิเคชันคอนเทนเนอร์แบบอิงนักเทียบท่า
การโฮสต์แอปพลิเคชันโดยใช้คอนเทนเนอร์ Docker
แอปพลิเคชันที่โฮสต์บน IOS XR รองรับคอนเทนเนอร์นักเทียบท่า คุณสามารถสร้างคอนเทนเนอร์ของคุณเองบน IOS XR ได้โดยใช้นักเทียบท่า และโฮสต์แอปพลิเคชันภายในคอนเทนเนอร์นั้น แอปพลิเคชันสามารถพัฒนาได้โดยใช้การกระจาย Linux ใดก็ได้ เหมาะอย่างยิ่งสำหรับแอปพลิเคชันที่ใช้ไลบรารีระบบที่แตกต่างจากรูท IOS XR file ระบบ. Cisco NCS 540 รองรับเฉพาะการโฮสต์แอปพลิเคชันที่ใช้นักเทียบท่าเท่านั้น
การโฮสต์แอปพลิเคชันคอนเทนเนอร์แบบอิงนักเทียบท่า
ส่วนนี้แนะนำแนวคิดของการโฮสต์แอปพลิเคชันคอนเทนเนอร์และอธิบายขั้นตอนการทำงาน การโฮสต์แอปพลิเคชันคอนเทนเนอร์ช่วยให้แอปพลิเคชันโฮสต์ในสภาพแวดล้อมและพื้นที่กระบวนการของตนเอง (เนมสเปซ) ภายในคอนเทนเนอร์ Linux บน Cisco IOS XR นักพัฒนาแอปพลิเคชันสามารถควบคุมสภาพแวดล้อมการพัฒนาแอปพลิเคชันได้อย่างสมบูรณ์ และสามารถใช้การกระจาย Linux ได้ตามต้องการ แอปพลิเคชันถูกแยกออกจากกระบวนการควบคุม IOS XR แต่สามารถเชื่อมต่อกับเครือข่ายภายนอก XR ผ่านอินเทอร์เฟซ XR GigE ได้ แอปพลิเคชันยังสามารถเข้าถึงท้องถิ่นได้อย่างง่ายดาย file ระบบบน IOS XR
การใช้ Docker สำหรับการโฮสต์แอปพลิเคชันบน Cisco IOS XR
Docker เป็นคอนเทนเนอร์ที่ใช้สำหรับโฮสต์แอปพลิเคชันบน Cisco IOS XR นักเทียบท่าจัดให้มีการแยกกระบวนการแอปพลิเคชันจากกระบวนการโฮสต์พื้นฐานบน XR โดยใช้เนมสเปซเครือข่าย Linux
ต้องการ Docker บน Cisco IOS XR
Docker กำลังกลายเป็นโมเดลบรรจุภัณฑ์ที่อุตสาหกรรมต้องการสำหรับการใช้งานในพื้นที่เวอร์ช่วลไลเซชั่น Docker เป็นรากฐานสำหรับการจัดการวงจรชีวิตของแอปพลิเคชันโดยอัตโนมัติ Docker ปฏิบัติตามแนวทางแบบเลเยอร์ที่ประกอบด้วยอิมเมจพื้นฐานที่ด้านล่างซึ่งรองรับเลเยอร์ของแอปพลิเคชันที่อยู่ด้านบน อิมเมจพื้นฐานพร้อมใช้งานแบบสาธารณะในพื้นที่เก็บข้อมูล ขึ้นอยู่กับประเภทของแอปพลิเคชันที่คุณต้องการติดตั้งด้านบน คุณสามารถจัดการอิมเมจนักเทียบท่าได้โดยใช้ดัชนีนักเทียบท่าและรีจิสตรี Docker จัดเตรียมเวิร์กโฟลว์ที่เหมือนคอมไพล์สำหรับการพัฒนาแอปพลิเคชันคอนเทนเนอร์และรองรับกลไก "thin update" ซึ่งมีการอัปเดตเฉพาะซอร์สโค้ดที่แตกต่างกันเท่านั้น ซึ่งนำไปสู่การอัปเกรดที่รวดเร็วยิ่งขึ้น นักเทียบท่ายังมีกลไก "การดาวน์โหลดแบบบาง" ซึ่งแอปพลิเคชันใหม่จะถูกดาวน์โหลดเร็วขึ้นเนื่องจากการแชร์เลเยอร์นักเทียบท่าพื้นฐานทั่วไประหว่างคอนเทนเนอร์นักเทียบท่าหลายตัว การแบ่งปันเลเยอร์นักเทียบท่าระหว่างคอนเทนเนอร์นักเทียบท่าหลายตัวทำให้พื้นที่ใช้งานลดลงสำหรับคอนเทนเนอร์นักเทียบท่าบน XR
สถาปัตยกรรมนักเทียบท่าบน Cisco IOS XR
รูปต่อไปนี้แสดงให้เห็นสถาปัตยกรรมนักเทียบท่าบน IOS XR

ไบนารีของแอปพลิเคชันสำหรับแอปพลิเคชันที่จะโฮสต์ได้รับการติดตั้งภายในคอนเทนเนอร์นักเทียบท่า
การโฮสต์แอปพลิเคชันใน Docker Containers
รูปภาพต่อไปนี้แสดงขั้นตอนการทำงานสำหรับการโฮสต์แอปพลิเคชันในคอนเทนเนอร์ Docker บน IOS XR

- นักเทียบท่า file ในพื้นที่เก็บข้อมูลต้นทางจะใช้เพื่อสร้างไบนารีของแอปพลิเคชัน file บนเครื่องโฮสต์ (นักเทียบท่าเครื่องยนต์) ของคุณ
- แอปพลิเคชันไบนารี file ถูกผลักเข้าไปในรีจิสตรีอิมเมจนักเทียบท่า
- แอปพลิเคชันไบนารี file ถูกดึงออกจากรีจิสตรีอิมเมจนักเทียบท่าและคัดลอกไปยังคอนเทนเนอร์นักเทียบท่าบน XR (โฮสต์เป้าหมายกลไกนักเทียบท่า)
- แอปพลิเคชันนี้สร้างและโฮสต์ไว้ในคอนเทนเนอร์นักเทียบท่าบน XR
การอัพเดตแอพพลิเคชั่นใน Docker Containers
รูปภาพต่อไปนี้แสดงขั้นตอนการทำงานสำหรับการอัพเดตแอปพลิเคชันที่โฮสต์ในคอนเทนเนอร์นักเทียบท่า
- การอัปเดตแอปพลิเคชันถูกสร้างขึ้นเป็นการอัปเดต libs พื้นฐาน file (อัพเดตเดลต้า file) และพุชไปที่รีจิสตรีอิมเมจนักเทียบท่า
- การอัปเดตเดลต้า file (มีเพียงความแตกต่างในรหัสแอปพลิเคชัน) จะถูกดึงจากรีจีสทรีอิมเมจนักเทียบท่าและคัดลอกไปยังคอนเทนเนอร์นักเทียบท่าบน XR (โฮสต์เป้าหมายกลไกนักเทียบท่า)
- คอนเทนเนอร์นักเทียบท่าจะเริ่มต้นใหม่ด้วยการอัปเดตเดลต้า file.
การโฮสต์ TPA โดยใช้ Application Manager
ตารางที่ 1: ตารางประวัติคุณลักษณะ
| คุณสมบัติ ชื่อ | ข้อมูลการเปิดตัว | คุณสมบัติ คำอธิบาย |
| บริการ Docker Daemon ตามความต้องการ | ปล่อยรุ่น 7.5.1 | ตั้งแต่การเปิดตัวครั้งนี้เป็นต้นไป
บริการ Docker daemon เริ่มต้นบนเราเตอร์เฉพาะเมื่อคุณกำหนดค่าแอปพลิเคชันโฮสติ้งบุคคลที่สามโดยใช้ ผู้จัดการแอป สั่งการ. บริการตามความต้องการดังกล่าวช่วยปรับทรัพยากรระบบปฏิบัติการให้เหมาะสม เช่น CPU หน่วยความจำ และพลังงาน ในรุ่นก่อนหน้านี้ บริการ Docker daemon จะเริ่มทำงานโดยอัตโนมัติระหว่างที่เราเตอร์บูตเครื่อง |
ในรีลีสก่อนหน้านี้ แอพพลิเคชั่นถูกโฮสต์และควบคุมโดยคำสั่ง Docker คำสั่ง Docker เหล่านี้ดำเนินการใน bash shell ของ Kernel ที่โฮสต์ซอฟต์แวร์ Cisco IOS XR ด้วย ด้วยการเปิดตัว Application Manager ทำให้ตอนนี้สามารถจัดการการโฮสต์แอปพลิเคชันบุคคลที่สามและการทำงานผ่าน Cisco IOS XR CLIs ได้แล้ว ด้วยคุณสมบัตินี้ แอปพลิเคชันบุคคลที่สามที่เปิดใช้งานทั้งหมดสามารถรีสตาร์ทได้โดยอัตโนมัติหลังจากรีโหลดเราเตอร์หรือสลับ RP การรีสตาร์ทแอปพลิเคชันอัตโนมัตินี้ช่วยให้มั่นใจว่าแอปพลิเคชันที่โฮสต์ทำงานได้อย่างราบรื่น
คำสั่งที่รองรับในตัวจัดการแอปพลิเคชัน
สำหรับทุกคำสั่งหรือการกำหนดค่าตัวจัดการแอปพลิเคชันที่ดำเนินการ ตัวจัดการแอปพลิเคชันจะดำเนินการตามที่ร้องขอโดยเชื่อมต่อกับ Docker daemon ผ่านซ็อกเก็ต Docker ตารางต่อไปนี้แสดงรายการฟังก์ชันการทำงานของคอนเทนเนอร์ Docker คำสั่ง Docker ทั่วไปที่ใช้ในรีลีสก่อนหน้า และคำสั่งตัวจัดการแอปพลิเคชันที่เทียบเท่าซึ่งขณะนี้สามารถใช้ได้:
| ฟังก์ชันการทำงาน | คำสั่ง Docker ทั่วไป | แอปพลิเคชัน ผู้จัดการ คำสั่ง |
| ติดตั้งแอปพลิเคชัน RPM | NA | เราเตอร์#appmgr แพ็คเกจติดตั้ง rpm
image_name-0.1.0-XR_7.3.1.x86_64.rpm |
| กำหนดค่าและเปิดใช้งานแอปพลิเคชัน | • โหลดรูปภาพ – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/ชื่อภาพ.ทาร์
• ตรวจสอบภาพบนเราเตอร์ – xr-vm_node0_RP0_CPU0:~]$docker รูปภาพ ls • สร้างคอนเทนเนอร์เหนือรูปภาพ – [xr-vm_node0_RP0_CPU0:~]$docker สร้าง ชื่อภาพ |
เราเตอร์#config
เราเตอร์ (config)#appmgr เราเตอร์ (config-appmgr)#application ชื่อแอป เราเตอร์ (config-application) #เปิดใช้งานประเภทแหล่งนักเทียบท่า ชื่อภาพ นักเทียบท่า run-opts “–net = โฮสต์” นักเทียบท่า 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:~]$นักเทียบท่า ปล• สถิติ -[xr-vm_node0_RP0_CPU0:~]สถิติ $docker |
เราเตอร์#แสดงตารางแหล่งที่มาของ appmgr
เราเตอร์#แสดงชื่อแอปพลิเคชัน appmgr ชื่อแอป สรุปข้อมูล เราเตอร์#แสดงชื่อแอปพลิเคชัน appmgr ชื่อแอป รายละเอียดข้อมูล เราเตอร์#แสดงชื่อแอปพลิเคชัน appmgr ชื่อแอป สถิติ |
| • บันทึก
-[xr-vm_node0_RP0_CPU0:~]$docker บันทึก |
เราเตอร์#แสดงตารางแอปพลิเคชัน appmgr
เราเตอร์#แสดงชื่อแอปพลิเคชัน appmgr ชื่อแอป บันทึก |
| ฟังก์ชันการทำงาน | คำสั่ง Docker ทั่วไป | แอปพลิเคชัน ผู้จัดการ คำสั่ง |
| เรียกใช้ใหม่ | • ดำเนินการ – [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | เราเตอร์#appmgr แอปพลิเคชันดำเนินการ |
| สั่งการ
ข้างใน |
ชื่อ ชื่อแอป นักเทียบท่า-exec-cmd | |
| วิ่ง | ||
| คอนเทนเนอร์ | ||
| หยุดคอนเทนเนอร์แอปพลิเคชัน | • หยุดคอนเทนเนอร์ – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | ชื่อหยุดแอปพลิเคชันเราเตอร์#appmgr ชื่อแอป |
| ฆ่าคอนเทนเนอร์แอปพลิเคชัน | • ฆ่าคอนเทนเนอร์ – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | ชื่อการฆ่าแอปพลิเคชันเราเตอร์ # appmgr ชื่อแอป |
| เริ่มคอนเทนเนอร์แอปพลิเคชัน | • เริ่มคอนเทนเนอร์ – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | ชื่อเริ่มต้นแอปพลิเคชันเราเตอร์#appmgr ชื่อแอป |
| ปิดการใช้งานแอปพลิเคชัน | • หยุดคอนเทนเนอร์ – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | เราเตอร์#กำหนดค่า
เราเตอร์ (config) #ไม่มีแอปพลิเคชัน appmgr ชื่อแอป |
| • ลบคอนเทนเนอร์ – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | เราเตอร์ (config) #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 เพื่อตรวจสอบประสิทธิภาพเครือข่ายโดยใช้ตัวจัดการแอปพลิเคชัน”
การกำหนดค่า Docker ด้วย VRF หลายตัว
ส่วนนี้จะอธิบายวิธีที่คุณสามารถกำหนดค่า Docker ด้วย VRF หลายตัวบน Cisco IOS XR สำหรับข้อมูลเกี่ยวกับการกำหนดค่า VRF หลายรายการ โปรดดูหัวข้อการกำหนดค่า VRF หลายรายการสำหรับการโฮสต์แอปพลิเคชัน
การกำหนดค่า
ใช้ขั้นตอนต่อไปนี้เพื่อสร้างและปรับใช้ multi-VRF Docker บน XR
- สร้าง multi-VRF Docker ที่มีสิทธิ์ NET_ADMIN และ SYS_ADMIN
ในกรณีต่อไปนี้ample ซึ่งเป็นคอนเทนเนอร์ Docker ที่ประกอบด้วย VRF สามตัว (สีเหลือง น้ำเงิน และเขียว) จะถูกเปิดใช้งาน อดีตample ถือว่ามีการติดตั้งอิมเมจนักเทียบท่า “multivrfimage” ก่อนหน้านี้โดยใช้คำสั่งติดตั้งแพ็คเกจ appmgr
บันทึก:- ไม่แนะนำให้เมาต์เนื้อหาทั้งหมดของ /var/run/netns จากโฮสต์ไปยัง Docker เนื่องจากจะเมานต์เนื้อหาของ netns ที่สอดคล้องกับ XR และระนาบผู้ดูแลระบบลงใน Docker
- คุณไม่ควรลบ VRF ออกจาก Cisco IOS XR เมื่อใช้ใน Docker หาก VRF อย่างน้อยหนึ่งรายการถูกลบออกจาก XR จะไม่สามารถเปิดใช้งาน multi-VRF Docker ได้
- ตรวจสอบว่าโหลด multi-VRF Docker สำเร็จหรือไม่

- เชื่อมต่อกับคอนเทนเนอร์ VRF Docker หลายตัวโดยดำเนินการคำสั่งต่อไปนี้
เราเตอร์ # appmgr แอปพลิเคชันชื่อ exec multivrfcontainer1 docker-exec-cmd /bin/bash/
ตามค่าเริ่มต้น Docker จะถูกโหลดในเนมสเปซ global-vrf บน Cisco IOS XR - ตรวจสอบว่า VRF หลายรายการสามารถเข้าถึงได้จาก Docker หรือไม่


คุณได้เปิดตัว multi-VRF Docker บน Cisco IOS XR สำเร็จแล้ว
เอกสาร / แหล่งข้อมูล
![]() |
แอปพลิเคชั่นโฮสติ้ง CISCO IOS XR [พีดีเอฟ] คู่มือการใช้งาน แอปพลิเคชั่นโฮสติ้ง IOS XR, IOS XR, แอปพลิเคชั่นโฮสติ้ง, แอพพลิเคชั่น |

