Inleiding
Dit document beschrijft de analyse en oplossing van fouten in de installatie van containers die worden veroorzaakt door incompatibiliteit van OCI-verpakkingen met Cisco Catalyst
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- App-hosting op Cisco Catalyst 9000-serie switches
- Afbeeldingsformaten voor Docker-containers, met name Docker- en Open Container Initiative (OCI)-standaarden
- Verschillen in Docker Engine-versies en hun compatibiliteit met Cisco IOS®-releases
- Basiskennis van Cisco IOS® CLI en probleemoplossing voor containerinstallaties
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Cisco Catalyst 9300X-reeks Switches
- Cisco IOS®-software
- Toepassing van derden verpakt als een container met OCI-indeling
- Solid State Drive (SDD) als opslag voor app-hosting containers
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
App-hosting op Cisco Catalyst 9000 Series-switches maakt de implementatie van containergebaseerde toepassingen rechtstreeks op de switch-hardware mogelijk, gebruikmakend van het IOx-platform. Deze containers gebruiken vaak het Docker-afbeeldingsformaat. Recente ontwikkelingen in containerverpakkingsnormen hebben het Open Container Initiative (OCI) -formaat geïntroduceerd, dat niet universeel wordt ondersteund in alle Docker Engine-versies. Met de release van nieuwere Cisco IOS®-versies heeft Cisco stapsgewijs ondersteuning toegevoegd voor recentere Docker Engine-versies, waardoor de compatibiliteit met OCI-verpakte containers wordt uitgebreid. Niet alle Cisco IOS®-releases, noch alle Catalyst-platforms, bieden echter ondersteuning voor OCI-verpakking. Aangezien organisaties toepassingen van derden willen implementeren die gebruikmaken van nieuwere standaarden, kunnen mismatches tussen softwareversies en containerformaten installatiefouten en gerelateerde fouten veroorzaken.
Probleem
Het doel was om een applicatie van derden te upgraden of te installeren als een container op Cisco Catalyst 9000 Series-switches, met name op apparaten met Cisco IOS® 17.6.4. De toepassing werd verpakt als een OCI-compatibel Docker-image en opgeslagen op de SSD-schijf. Tijdens de installatie is het proces mislukt met fouten met betrekking tot de archiefbestandsstructuur en ontbrekende verplichte blobs. Dit is een gedetailleerde reproductie en illustratie van het probleem.
Stap 1: Probeer de container te installeren op 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!
Deze foutmelding duidt op een fout tijdens het extraheren van de Docker-bestanden uit het verstrekte tar-bestand, waarbij specifiek wordt verwezen naar ontbrekende verplichte laagblobs. Dit is symptomatisch voor een incompatibiliteit tussen het containerbeeldformaat en de versie van de Docker Engine die beschikbaar is op de switch.
Stap 2: inspecteer de structuur van het teerbestand
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#
Ondanks de extractie is de installatie mislukt, wat bevestigt dat het probleem niet met de bestandsintegriteit was, maar met de compatibiliteit van het formaat. Het containerteerbestand is geïdentificeerd als met behulp van OCI-structuur, die niet wordt ondersteund door de Docker-daemon (dockerversie) die aanwezig is in Cisco IOS® 17.6.4.
Stap 3: Controleer de IOx- en Dockerversie op de Switch
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
Deze uitvoer laat zien dat de switch werkt met Dockerversie 18.03.0, die geen OCI-verpakte containers ondersteunt. Dit is de oorzaak van de installatiefout voor OCI-geformatteerde images.
Oplossing
De oplossing omvat het upgraden van de Cisco IOS®-software naar een versie die een recente Docker Engine (docker) ondersteunt die de installatie van OCI-geformatteerde containers mogelijk maakt. Het proces wordt stap voor stap beschreven.
Stap 1: Upgrade de Switch naar een compatibele Cisco IOS®-versie
Upgrade de switch naar Cisco IOS® versie 17.8.1 of hoger. Deze versie bevat Dockered v19.03.13-ce of hoger, die OCI-verpakking ondersteunt.
Stap 2: Controleer de gedockte versie na de upgrade
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
Zorg ervoor dat Dockert wordt uitgevoerd op v19.03.13-ce of hoger. Als dat het geval is, kunnen OCI-geformatteerde containers nu met succes worden geïnstalleerd.
Stap 3: Probeer de containerinstallatie opnieuw
Nadat u de versie van de Docker Engine hebt bevestigd, herhaalt u het installatieproces van de container. De installatie is nu voltooid zonder fouten met betrekking tot archiefextractie of ontbrekende blobs.
Oorzaak
De onderliggende oorzaak van het probleem was het gebruik van een containerafbeelding verpakt in het Open Container Initiative (OCI) -formaat, dat niet wordt ondersteund door de versie van Docker Engine (docked 18.03.0) die is meegeleverd met Cisco IOS® 17.6.4. Alleen Cisco IOS®-versies 17.8.1 en hoger, waaronder Docker Engine v19.03.13-ce of hoger, ondersteunen OCI-verpakking. Het upgraden van de Cisco IOS®-software lost de incompatibiliteit op.
Gerelateerde informatie