المقدمة
يصف هذا وثيقة تحليل ودقة حالات فشل تثبيت الحاوية الناجمة عن عدم توافق حزم OCI مع Cisco Catalyst
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- إستضافة التطبيقات على محولات Cisco Catalyst 9000 Series Switches
- تنسيقات صورة حاوية Docker، وخاصة معايير Docker و Open Container Initiative (OCI)
- الفروق في إصدارات محرك الإرساء وتوافقها مع إصدارات Cisco IOS®
- معرفة أساسية بواجهة سطر الأوامر (CLI) من Cisco IOS® واستكشاف أخطاء عمليات تثبيت الحاوية وإصلاحها
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- سلسلة مبدلات Cisco Catalyst 9300X
- برامج® أنظمة تشغيل Cisco
- تطبيقات الجهات الخارجية يتم حزمها على هيئة حاوية باستخدام تنسيق OCI
- محرك أقراص مزود بذاكرة مصنوعة من مكونات صلبة (SDD) كمخزن للحاويات المضيفة للتطبيقات
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
يسمح إستضافة التطبيقات على محولات Cisco Catalyst 9000 Series بنشر التطبيقات المستندة إلى الحاويات مباشرة على أجهزة المحول، مما يعمل على زيادة فعالية النظام الأساسي IOx. غالبا ما تستخدم هذه الحاويات تنسيق صورة Docker. أدخلت التطورات الأخيرة في معايير تعبئة الحاويات صيغة مبادرة الحاويات المفتوحة (OCI)، التي لا تحظى بدعم عالمي في جميع إصدارات محرك الإرساء. مع إصدار إصدارات Cisco IOS® الأحدث، زادت Cisco تدريجيا من دعم إصدارات محرك الإرساء الأحدث، وبالتالي توسع التوافق مع الحاويات ذات حزم OCI. ومع ذلك، لا توفر جميع إصدارات Cisco IOS®، ولا جميع منصات Catalyst، الدعم لحزم OCI. نظرا لأن المؤسسات تسعى لنشر تطبيقات تابعة لجهات خارجية تستفيد من المعايير الأحدث، فإن حالات عدم التطابق بين إصدارات البرامج وتنسيقات الحاويات قد تتسبب في حدوث حالات فشل في التثبيت وأخطاء ذات صلة.
المشكلة
كان الهدف هو ترقية أو تثبيت تطبيق من إنتاج جهة خارجية كحاوية على محولات Cisco Catalyst 9000 Series Switches، وخاصة على الأجهزة التي تشغل برنامج Cisco IOS® 17.6.4. تم تجميع التطبيق كصورة إرساء متوافقة مع OCI وتم تخزينه على محرك أقراص مزود بذاكرة مصنوعة من مكونات صلبة. أثناء التثبيت، فشلت العملية مع وجود أخطاء متعلقة ببنية ملف الأرشيف وفقد نقاط ثنائية إلزامية. وهذا هو تناسخ مفصل وإيضاح للمسألة.
الخطوة 1: محاولة تثبيت الحاوية على Cisco IOS®، الإصدار 17.6.4
Device#Aug 15 13:11:11.389 UTC: %IM-6-INSTALL_MSG: R0/0: ioxman: app-hosting: Install failed: Invalid Archive file: Unable to extract docker rootfs /disk0/pathview-cmp.tar to /vol/disk0/caf/tmpExtractf117jdv6/rootfs Error:Mandatory layer blobs is missing!
تشير رسالة الخطأ هذه إلى فشل أثناء إستخراج ملفات Docker من ملف tar المتوفر، وعلى وجه التحديد الإشارة إلى نقاط البنية الأساسية للطبقة الإلزامية المفقودة. وهذا يدل على عدم توافق بين تنسيق صورة الحاوية وإصدار "محرك الإرساء" المتوفر على المحول.
الخطوة 2: فحص بنية ملف tar
Device#archive tar /table flash:pathview-cmp.tar
blobs/ (directory)
blobs/sha256/ (directory)
blobs/sha256/0318da79d21ba1e610bde0c6029f424293316cb913bb8e39a673c1f344be8727 (477 bytes)
blobs/sha256/046b3f7b867b1b7b8abd8ad22b3d64d1692f670c6a6e210a03ad3d31e9e80e79 (2996736 bytes)
blobs/sha256/04f0912220f0c2c6935e817813866ba3bdadba386edc577325a83a1fdb4879d2 (2560 bytes)
blobs/sha256/1e5cb17607b5c739629c9d0be80fa48f57ccd3507962ac221c9fbb91b20af171 (3584 bytes)
blobs/sha256/26323df902297791c86ab980a2cfaa76a9939bc7cc72646d6d0fb02db2fd0c32 (477 bytes)
blobs/sha256/2e4b80ea022a9c575ff90f41c4a533a0104a0361be4f563d50ec128aea973f57 (3072 bytes)
blobs/sha256/31aedc7091e9c30e45a6b276bd3bbe922ded9791ef4a9b9c9e44d3c9ddd74183 (477 bytes)
blobs/sha256/4172f6ce43d7636f98bfca81b0dc64ab7a600bbc7c60916c70a89749d092bd28 (11776 bytes)
blobs/sha256/4654182bbf590a33df0930847ce2803792ad2822e19c630f00bb39abb0c98ef6 (11676 bytes)
blobs/sha256/4ba2623fac214b72c911695418ed7d4d3b41dc1ed9101e448ca124ed126f0cf5 (401 bytes)
blobs/sha256/625d905965265a01abf82f80bd0c9c103ab229efbffdf8e17e5408a97d9ba470 (477 bytes)
blobs/sha256/6ba030bdcefc282c164bc0c6b4dfa8f30f085487aba82c1524a55649f2741e98 (1908 bytes)
blobs/sha256/6c4c763d22d0c5f9b2c5901dfa667fbbc4713cee6869336b8fd5022185071f1c (77895680 bytes)
blobs/sha256/6def6f10cc5b9a7dc012ca9e9321013a1d947c60f7ef902af2bcdef2fc53efcb (207397376 bytes)
blobs/sha256/7a2f3e2b33a720bc5ba562639d581574c997fa47efb26486360e0cad9d311573 (4096 bytes)
blobs/sha256/96cbe396af0cb40feb2bdab0d22e2a5f5ca3865455d7c8ca28245e1462eaf2be (477 bytes)
blobs/sha256/a0b1b29152e438cee663922cf019cc9beccd1958e3385cbb0b1c4b2c8f5cf0f8 (2048 bytes)
blobs/sha256/a9775757eec8bb747ca1dd66356a643943d4c9e18cccb7135305f9f3ff3c6790 (3584 bytes)
blobs/sha256/b5a729e23ce10966aa1935040de68b24dedc7b7cbc98dd233307623f95330493 (1971200 bytes)
blobs/sha256/c21b565f0164ee4f392a2f3507b36a5f7d06c77db979e84e9fd6100f3c5f1ef5 (2220 bytes)
blobs/sha256/c5b39eb2dc5af9a446af02dd67237191f5fc164dce4bfeb2cbc63ab7802fc50f (29141504 bytes)
blobs/sha256/d0539e4616d88232f284a9d469ee309dec1850aa8b6ed4f57b2e84f413eba34d (477 bytes)
blobs/sha256/d13aa916c45e4866e0bc3af1a68ee7360b5e1c074cd0849f67b72b64e5e4d4f5 (477 bytes)
blobs/sha256/d4924836d34beac0bc207c42351234b771a3f2a0d3a0bc1e8b1aa175edb70852 (477 bytes)
blobs/sha256/d86d4fab4a9109fea084cccddefb3bb78b69d20674a1104d8ca3170ed4ad50d7 (477 bytes)
blobs/sha256/dd1f33c08d67af57858bcc4aa1cedd4cfa00560b77b248e0903ae26bb66bea87 (477 bytes)
blobs/sha256/efdcd58e09999ffc1bca3ca8256a03fdf8fa90713478d2ed13f884ddd2e3cad2 (12800 bytes)
blobs/sha256/f356261d8da7bf5ad814f757b1a51b9be2eb74c59cfcda944be2d31ab56f5ecd (477 bytes)
index.json (381 bytes)
manifest.json (4135 bytes)
oci-layout (31 bytes) <<< Indication that the container is created using OCI standard
repositories (101 bytes)
device#
على الرغم من الاستخراج، فشل التثبيت، مما يؤكد أن المشكلة لا تتعلق بسلامة الملف بل بتوافق التنسيق. تم تحديد ملف tar للحاوية على أنه يستخدم بنية OCI، والتي لا يدعمها إصدار برنامج مساعد Docker (dockerd) الموجود في Cisco IOS® 17.6.4.
الخطوة 3: التحقق من IOx وإصدار Dockerd على المحول
Device#show iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) : Running
IOx service (HA) : Running
IOx service (IOxman) : Running
IOx service (Sec storage) : Not Running
Libvirtd 5.5.0 : Running
Dockerd 18.03.0 : Running <<< This version doesn't support OCI packaging
Sync Status : Disabled
يوضح هذا الإخراج أن المحول يشغل الإصدار 18.03.0 من بروتوكول Dockerd، والذي لا يدعم الحاويات ذات حزم OCI. هذا هو جذر فشل التثبيت للصور بتنسيق OCI.
الحل
يتضمن الحل ترقية برنامج Cisco IOS® إلى إصدار يدعم محرك إرساء (dockerd) مؤخرا بما يكفي للسماح بتثبيت الحاويات المنسقة باستخدام OCI. ويجري وصف العملية خطوة فخطوة.
الخطوة 1: ترقية المحول إلى إصدار متوافق من Cisco IOS®
قم بترقية المحول إلى Cisco IOS® الإصدار 17.8.1 أو إصدار أعلى. يتضمن هذا الإصدار الإصدار Dockerd v19.03.13-ce أو إصدار أحدث، والذي يدعم حزم OCI.
الخطوة 2: التحقق من إصدار Dockerd بعد الترقية
Device#show iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) : Running
IOx service (HA) : Running
IOx service (IOxman) : Running
IOx service (Sec storage) : Running
Libvirtd 5.5.0 : Running
Dockerd v19.03.13-ce : Running <<< Version that supports OCI packaging
Sync Status : Disabled
تأكد من تشغيل Dockerd على الإصدار 19.03.13-ce أو أعلى. إذا كان الأمر كذلك، يمكن الآن تثبيت الحاويات بتنسيق OCI بنجاح.
الخطوة 3: إعادة محاولة تثبيت الحاوية
بعد تأكيد إصدار "محرك الإرساء"، كرر عملية تثبيت الحاوية. يتم الآن إكمال التثبيت بنجاح دون أخطاء تتعلق باستخراج الأرشيف أو نقاط الوصل المفقودة.
السبب
كان السبب الأساسي للمشكلة هو إستخدام صورة حاوية معبأة في تنسيق مبادرة الحاوية المفتوحة (OCI)، والذي لا يدعمه إصدار محرك الإرساء (dockerd 18.03.0) المضمن مع Cisco IOS® 17.6.4. لا تدعم حزم OCI إلا إصدارات Cisco IOS® 17.8.1 والإصدارات الأحدث، والتي تتضمن محرك الإرساء v19.03.13-ce أو الأحدث. يعمل ترقية برنامج Cisco IOS®على حل عدم التوافق.
معلومات ذات صلة