Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Einschränkungen für Anwendungshosting-Framework

Architektur für Anwendungshosting

Unterstützte Catalyst-Modelle für Anwendungs-Hosting

Hardwareressourcen für Anwendungen

Hohe Anwendungsverfügbarkeit

Anwendungshosting-Framework

Container-Netzwerke

Netzwerk für Anwendungs-Hosting

Lebenszyklus für und Anwendung

Docker-Laufzeitoptionen

Liste nicht unterstützter Docker-Laufzeitoptionen

Konfiguration

Fehlerbehebung

Docker-Container ändern

Zugehörige Informationen

Einleitung

In diesem Dokument wird die Implementierung und Fehlerbehebung von App Hosting auf Plattformen der Catalyst Serie 9000 beschrieben.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- LAN-Switching-Grundlagen.

- Vertrautheit Cisco IOS® XE und Lizenzierung

- Kenntnis der Switching-Architekturen

- Vertrautheit mit grundlegenden Linux-Befehlen

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Cisco IOS® XE- und 16.12.X- oder 17.X-Software

- Weitere Informationen finden Sie unter Unterstützte Catalyst-Modelle für das Anwendungshosting.

Anmerkung: Die Befehle, um diese Funktionen auf anderen Cisco Plattformen zu aktivieren, finden Sie im entsprechenden Konfigurationsleitfaden.

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Hintergrundinformationen

Anwendungen sind in Unternehmensnetzwerken für eine Vielzahl geschäftskritischer Anwendungsfälle unverzichtbar, darunter Verwaltungstools wie Protokollanalysatoren und Sicherheitslösungen wie Intrusion Detection Services. In der Vergangenheit wurden diese Anwendungen auf externen physischen oder Cloud-basierten virtuellen Servern ausgeführt. Moderne Anforderungen haben jedoch die Grenzen solcher Ansätze verdeutlicht.

Die Cisco Catalyst Switches der Serie 9000 haben das Unternehmensnetzwerk revolutioniert, indem sie fortschrittliche Funktionen integriert haben, die für das moderne digitale Zeitalter entwickelt wurden. Dank des Cisco IOS® XE-Betriebssystems und einer x86-CPU sind diese Switches mehr als nur herkömmliche Netzwerkgeräte. Sie dienen als Plattformen für das Anwendungs-Hosting und ermöglichen Unternehmen die Konsolidierung der Infrastruktur und die Erschließung neuer Möglichkeiten für das Edge-Computing. So können Anwendungen wie Sicherheitsagenten, IoT-Sensoren und Datenverkehrsüberwachungstools direkt auf dem Switch ausgeführt werden, sodass keine externe Computing-Hardware erforderlich ist.

Einschränkungen für Anwendungshosting-Framework

Um das Anwendungshosting-Framework auf Catalyst 9000 zu aktivieren, müssen folgende Voraussetzungen erfüllt sein:

- Der Switch muss die Version 16.12 ausführen. Docker App wird nur von Version 16.12 unterstützt, da diese Version die native Docker-Engine unterstützt.

- Bevor Application Hosting auf dem Catalyst 9000 aktiviert werden kann, muss ein von Cisco zertifiziertes USB3.0-Flash-Laufwerk in den USB3.0-Port an der Rückseite des Geräts installiert werden. App-Hosting funktioniert nur auf der Rückseite USB3.0.

- Cisco Smart Licensing ist für Catalyst 9000-Plattformen erforderlich. Zur Aktivierung des App-Hosting ist eine Cisco DNA-Advantage-Lizenzierung erforderlich.

- Es werden nur Docker-Container unterstützt.Die Docker-Apps können auf von Cisco unterstützten SSD-Speichern installiert werden.

- Internes Flash wird für Anwendungen von Drittanbietern nicht unterstützt, nur von Cisco signierte Anwendungen wie ThousandEyes Agents.

- Container von Drittanbietern müssen sich in einer der externen Solid State-Festplattenspeicheroptionen befinden, die von den Catalyst Switches der Serie 9000 bereitgestellt werden. SSD-Speicher wird auf Catalyst Switches der Serie 9300 unterstützt. SATA-Speicher wird von den Hochleistungsmodellen der Catalyst Serie 9400 und Catalyst Serie 9500 sowie von den Catalyst Switches der Serie 9600 unterstützt. SSD-Speicher oder SATA-Speicher können nicht im USB-Port an der Vorderseite des Switches verwendet werden.

- Cisco stellt keine vorgefertigten Apps von Drittanbietern bereit, die nicht unterstützt werden. Die Kunden müssen diese Pakete selbst verpacken. Bestimmte Drittanbieter, mit denen Cisco zusammengearbeitet hat, können einen Link speziell für die Cisco Installation freigeben.

- USB-Ports an der Vorderseite zum Hosten von Anwendungen werden nur von Catalyst 9300LM-Modellen unterstützt.

Architektur für Anwendungshosting

Zur Unterstützung der Funktionen für das Anwendungshosting auf den Cisco Catalyst Switches der Serie 9000 stellt der Switch Hardwareressourcen bereit, auf denen sich Anwendungen befinden und ausgeführt werden können. Cisco IOS XE auf den Cisco Catalyst Switches der Serie 9000 reserviert dedizierte Arbeitsspeicher- und CPU-Ressourcen für das Anwendungshosting, um einen separaten Ausführungsbereich für Benutzeranwendungen bereitzustellen, ohne die Integrität und Leistung des Switches zu beeinträchtigen.

Darüber hinaus müssen sich die Anwendungen je nach Cisco Catalyst 9000-Plattform in einer der externen SSD-Speicheroptionen (USB oder M2 SATA) befinden. Anwendungen haben keinen Zugriff auf den internen Flash-Speicher des Geräts, der zum Schutz der Integrität für Cisco IOS XE reserviert ist.

Für maximale Flexibilität und vollständige Isolierung vom Hauptbetriebssystem unterstützen der Cisco IOS XE-Kernel und das Cisco Application Framework auf den Cisco Catalyst Switches der Serie 9000 containerisierte Anwendungen durch die Nutzung von Kontrollgruppen (Cgroups) und Benutzer-Namespace. Gruppen beschränken den Zugriff auf physische Ressourcen wie CPU und Arbeitsspeicher für Anwendungen. Das Cisco Application Framework prüft, ob genügend Ressourcen für die Aktivierung und Installation der Anwendung vorhanden sind. Wenn für die Anwendung keine Hardwareressourcen verfügbar sind, kann sie die Anwendung nicht aktivieren, und der Administrator erhält entsprechende Meldungen.

Abbildung 1. Zeigt eine visuelle Darstellung des Cisco Application Framework auf der Cisco Catalyst 9000-Plattform:

Darüber hinaus bietet SSD-Speicher erstklassige Sicherheit durch AES-256-Hardwareverschlüsselung für SSD-Speicher und Passcode-Authentifizierung auf SSD-Speicher und Switch.

Die AES-256-Verschlüsselung erfolgt vollständig in der Hardware. Wenn die Passcode-Authentifizierung verwendet wird, muss der Passcode sowohl auf dem SSD als auch auf dem Switch festgelegt werden. Wenn ein SSD mit vorkonfigurierter Passcode-Authentifizierung in den Catalyst 9000-Switch eingefügt wird, der nicht über die entsprechende Passcode-Konfiguration verfügt, schlägt die Authentifizierung fehl, da für den Switch nicht der richtige Passcode konfiguriert ist. Der Passcode muss sowohl auf dem SSD-Speicher als auch auf dem Switch übereinstimmen, damit die Authentifizierung erfolgreich aufgehoben werden kann (siehe Abbildung 2).

Wenn der für den Passcode konfigurierte SSD-Speicher von den Catalyst Switches der Serie 9000 entfernt und in einen anderen Switch als den Catalyst Switch eingefügt wird, ist der Inhalt gesichert und der Zugriff ist nicht möglich. Auf vertrauliche Daten kann nur zugegriffen werden, wenn sie in einem Catalyst Switch mit dem richtigen Passcode entsperrt wurden.

Abbildung 2. Zeigt die Passcode-Authentifizierung auf dem SSD-Speicher:

Sie können z. B. die folgenden Befehle verwenden, um die Sicherheit zu aktivieren oder zu deaktivieren und ein Kennwort einzurichten:

Cat9k#hw-module switch 1 usbflash1 security ?

disable   disable security on USB3.0

enable    Enable security on USB3.0

unlock    Unlock USB3.0

Cat9k(config)#hw-module switch 1 usbflash1-password

Unterstützte Catalyst-Modelle für Anwendungs-Hosting

Die Anwendungshostfunktionen werden wie folgt unterstützt:

Unterstützte Plattformen

Cisco IOS XE-Version

Catalyst 9300/L

16.12.1 oder höher

Catalyst 9300X

17.5.1 oder höher

Catalyst 9300LM

17.9.1 oder höher

Catalyst 9404 und 9407

17.1.1 oder höher

Catalyst 9410

17.5.1 oder höher

Catalyst 9400X

17.8.1 oder höher

Catalyst Serie 9500, hohe Leistung und 9600

17.5.1 oder höher

Catalyst Serien 9500X und 9600X

17.8.1 oder höher

Anmerkung: Die Cisco Catalyst Serie 9200 und die Catalyst Serie 9500 (UADP 2.0-basiert: Die Modelle C9500-40X, C9500-16X, C9500-24Q, C9500-12Q) unterstützen kein Anwendungshosting.

Hardwareressourcen für Anwendungen

Tabelle 1.Enthält die Hardware-Ressourcen der Cisco Catalyst 9000-Plattform für Anwendungen:

Die Ressourcen, die CPU, der Arbeitsspeicher und die vCPU können mit einem benutzerdefinierten Ressourcenprofil reserviert werden, wenn die Standardoptionen nicht ausreichen. Informationen zu Geräteressourcenbeschränkungen finden Sie hier:

- vCPUs: Zeigt die maximale Anzahl virtueller CPUs an, die eine Anwendung gleichzeitig nutzen kann.

- CPU-Einheiten: Stellt die gesamte CPU-Auslastungsressource dar, die dem Anwendungshosting zugeordnet ist. Jede Anwendung legt die garantierte minimale CPU-Last fest, die für einen zuverlässigen Betrieb erforderlich ist.

- USB-Speicher auf der Rückseite: Verweist auf den vertieften USB 3.0-Steckplatz auf der Rückseite. Anwendungshosting wird nur auf diesem USB 3.0-Steckplatz auf der Rückseite unterstützt.

- M.2 SATA-Speicher: Bezieht sich auf ein internes Solid-State-Laufwerk (SSD), das für die Anwendungsdatenspeicherung verwendet wird.

- NA (Nicht zutreffend): Gibt an, dass das Feature oder die Ressource für die angegebene Konfiguration nicht verfügbar ist.

Das Beispiel veranschaulicht, wie ein benutzerdefiniertes Profil erstellt wird:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource profile custom

Cat9k(config-app-resource-profile-custom)#cpu 7400

Cat9k(config-app-resource-profile-custom)#memory 2048

Cat9k(config-app-resource-profile-custom)#vcpu 2

Hohe Anwendungsverfügbarkeit

Catalyst 9000-Switches unterstützen die Funktion zum automatischen Neustart von Anwendungen, mit der der zuletzt konfigurierte Betriebsstatus der Anwendung beim Switchover oder Neustart des Systems beibehalten werden kann. Diese Funktion ist standardmäßig aktiviert, und derselbe Speichertyp ist auf den aktiven und Standby-Switches erforderlich.

Tabelle 2: Funktion zum automatischen Neustart von Cisco Catalyst 9000-Anwendungen

Anwendungshosting-Framework

Anwendungshosting ist nicht standardmäßig aktiviert. Das Cisco Application Framework (CAF) wurde von Cisco entwickelt, um containerisierte Anwendungen auf beliebigen Netzwerkgeräten zu verwalten. CAF wird auch als IOx bezeichnet. Cisco IOx ermöglicht die Ausführung von IoT-Anwendungen am Netzwerk-Edge (Fog Computing) und stellt gleichzeitig eine sichere Verbindung mit der Cisco IOS-Software sicher. Es reserviert 4 GB Speicherplatz für das Anwendungshosting. Die Partitions- und Anwendungsdaten werden gelöscht, wenn IOx über die CLI deaktiviert wird oder wenn die IOx-Infrastruktur ein SSD verwendet.

Dies ist die Cisco IOS XE CLI-Konfiguration zur Aktivierung der Infrastruktur für das Anwendungshosting:

Cat9k(config)#iox

Anmerkung: Ab Cisco IOS XE 16.12.1 ist das IoX-Packaging nicht mehr zwingend erforderlich. Docker-Apps können wie gewohnt installiert werden. Dadurch können Benutzer ihre eigenen Anwendungen ohne zusätzliches Packaging erstellen und einbinden. Weitere Informationen zum Anwendungshosting finden Anwendungsentwickler auf der Cisco DevNet-Website.

Container-Netzwerke

Das Bild zeigt die Konnektivitätsarchitektur für Container. Es werden alle möglichen Netzwerkmodi hervorgehoben, die von Cat9k für das Hosting von Anwendungen unterstützt werden. Dazu gehören:

- Datenport-Switching an der Vorderseite über die dedizierte interne AppGigabitEthernet-Schnittstelle

- Verwaltungsschnittstelle (GigabitEthernet 0/0)

AppGigabitEthernet ist ein interner Hardware-Daten-Port, der von der Hardware auf die Datenports an der Vorderseite umgeschaltet wird. Die Container werden sowohl über die Verwaltungsschnittstelle als auch über die Datenports an der Vorderseite verbunden. In den Containern werden virtuelle Netzwerkkarten (vNICs) als Standard-Ethernet-Schnittstellen angezeigt, die mit eth0, eth1 usw. bezeichnet sind. Dieses Design vereinfacht die nahtlose Integration und die konsistente Netzwerkkonfiguration in Container-Umgebungen.

Abbildung 3. Containernetzwerkdiagramm:

Eine AppGigabitEthernet-Schnittstelle, die für die Cisco Switches der Serien Catalyst 9300, Catalyst 9400 und Catalyst 9500X eingeführt wurde, bietet eine dedizierte Funktion für den Anwendungsdatenverkehr. Es handelt sich um einen internen Hardware-Daten-Port, der per Hardware-Switching auf die Datenports an der Vorderseite geschaltet wird. Die AppGigabitEthernet-Schnittstelle kann als Trunk- oder VLAN-spezifische Schnittstelle konfiguriert werden. Für eine Trunk-Schnittstelle wird sie so erweitert, dass sie als Layer-2-Trunk-Port verwendet werden kann, und der gesamte vom Port empfangene Datenverkehr ist für die Anwendung verfügbar. Bei einer VLAN-Schnittstelle wird die Anwendung durch Angabe der VLAN-ID-Nummer mit einem bestimmten VLAN-Netzwerk verbunden.

AppGigabitEthernet ist nur für Switches der Serien Cisco Catalyst 9300, Catalyst 9400 und Catalyst 9500X verfügbar. Das Chassis des Catalyst 9410 mit Supervisor 1 erfordert die Deaktivierung von Steckplatz 4 und Port 48 (falls zutreffend), um den AppGigabitEthernet-Port zu aktivieren. Die Catalyst Switches der Serien 9500 High Performance und 9600 unterstützen keine AppGigabitEthernet-Schnittstelle. Die Anbindung für Anwendungen, die auf diesen Modellen gehostet werden, wird durch eine Verwaltungsschnittstelle über Loopback von allen Ports an der Vorderseite erreicht.

Anmerkung: Die Modelle C9300X, C9400X-Sup-2/2XL und C9500X verfügen über zwei 10G-AppGigabitEthernet-Ports.

Netzwerk für Anwendungs-Hosting

Für die Trunk-Schnittstelle ist der gesamte über Port empfangene Datenverkehr für App:

Cat9k(config)#interface AppGigabitEthernet 1/0/1

Cat9k(config)#switchport mode trunk

Cat9k(config-if)#exit

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic AppGigabitEthernet trunk

Cat9k(config-config-app-hosting-trunk)#guest-interface

Cat9k(config-config-app-hosting-trunk-mode-guest)#end

Für die VLAN-Schnittstelle ist die Anwendung mit einem bestimmten VLAN verbunden:

Cat9k(config)#interface AppGigabitEthernet 1/0/1

Cat9k(config)#switchport trunk allowed vlan

Cat9k(config-if)#exit

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic AppGigabitEthernet trunk

Cat9k(config-config-app-hosting-trunk)#vlan

guest-interface

Cat9k(config-config-app-hosting-trunk-mode-guest)#end

Für die Managementschnittstelle wird die Anwendung mit dem Managementport (GigabitEthernet0/0) verbunden:

Cat9k(config)#interface gigabitEthernet 0/0

Cat9k(config-if)#ip address

Cat9k(config-if)#exit

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#(config-app-hosting)#app-vnic management guest-interface

Cat9k((config-app-hosting-mgmt-gateway)#end

IP-Adressenzuweisung zum App-Container: IP-Adressen für Container-Schnittstellen können explizit über die Switch-CLI zugewiesen oder dynamisch über DHCP abgerufen werden.

Konfigurieren Sie über AppGigabitEthernet eine statische IP-Adresse für die App:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic AppGigabitEthernet trunk

Cat9k(config-config-app-hosting-trunk)#vlan

guest-interface

Cat9k(config-config-app-hosting-vlan-access-ip)#guest-ipaddress

netmask

<-- Container IP Address

Cat9k(config-config-app-hosting-vlan-access-ip)#exit

Cat9k(config-config-app-hosting-trunk)#exit

Cat9k(config-app-hosting)#app-default-gateway

guest-interface

Cat9k(config-app-hosting)#exit

Konfigurieren Sie eine statische IP-Adresse für die App über GigabitEthernet 0/0:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic management guest-interface

Cat9k(config-app-hosting-mgmt-gateway)#guest-ipaddress

netmask

Cat9k(config-app-hosting-mgmt-gateway)#exit

Cat9k(config-app-hosting)#app-default-gateway

guest-interface

Cat9k(config-app-hosting)#exit

Konfigurieren Sie eine dynamische IP-Adresse für die Anwendung (DHCP):

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic AppGigabitEthernet trunk

Cat9k(config-config-app-hosting-trunk)#vlan

guest-interface

Cat9k(config-config-app-hosting-vlan-access-ip)#end

Cat9k#

Or through Interface GigabitEthernet 0/0

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic management guest-interface

Cat9k(config-app-hosting-mgmt-gateway)#end

Tipp: Stellen Sie vor der Installation von Apps sicher, dass das Netzwerk richtig konfiguriert ist. Beenden, Deaktivieren und Deinstallieren, falls Änderungen erforderlich sind, und starten Sie den Vorgang dann neu.

Lebenszyklus für und Anwendung

Der Anwendungslebenszyklus auf Cisco Catalyst Switches der Serie 9000 umfasst drei Phasen, die in Abbildung 4 dargestellt sind:

- Installation: Während dieser Phase wird die Anwendung auf dem Gerät installiert. Die für die Anwendung erforderlichen Ressourcen sind jedoch noch nicht zugewiesen.

- Aktivieren: Für die Anwendung erforderliche Hardwareressourcen werden gebunden, um deren Funktionalität sicherzustellen.

- Start: Die Anwendung wechselt in einen Betriebszustand, wird vollständig aktiv und funktionsfähig.

Abbildung 4. Lebenszyklus-Management von Anwendungen:

Docker-Laufzeitoptionen

Wenn die Containeranwendung über Laufzeitoptionen verfügen muss, die als Befehlszeilenoptionen übergeben werden, z. B. Controller-IP, Datenverzeichnis usw., können diese Optionen mit dem Befehl app-resource docker konfiguriert werden.

Das System unterstützt mehrere Zeilen der Konfiguration von Ausführungsoption-Zeichenfolgen. Die wichtigsten Überlegungen für den Benutzer sind wie folgt:

- Der Benutzer kann bis zu 30 Zeilen Docker-Ausführungsoptionen eingeben/kopieren und einfügen.

- Das System generiert eine verkettete Zeichenfolge aus den Zeichenfolgen in den Zeilen 1 bis 30 in dieser Reihenfolge.

- Jede Zeichenfolge in jeder Zeile der Ausführungsoption darf maximal 235 Zeichen enthalten.

- Jede Zeichenfolge kann mehr als eine vollständige Docker-Ausführungsoption enthalten, solange sie alle in den 235 Zeichen enthalten sind.

- Beachten Sie, dass keine Ausführungsoption in einer Zeile in die nächste Zeile aufgeteilt werden kann.

- Es ist nicht erforderlich, die Zeichenfolge in jeder Zeile mit einem Leerzeichen zu beenden. Das System generiert automatisch ein Leerzeichen für jede Zeile, wenn es alle vorhandenen Zeichenfolgen für Ausführungsoptionen in einer einzigen Zeichenfolge verkettet.

- Wenn der Benutzer Änderungen an der Ausführungsoption vornimmt, muss der Benutzer die Anwendung beenden, deaktivieren, aktivieren und erneut starten, damit die neuen Ausführungsoptionen wirksam werden.

Dies ist ein Beispiel für eine Docker-Option und ihre mögliche äquivalente Konfiguration auf einem Cat9k-Switch:

docker run -v $(APP_DATA):/data --entrypoint startup.sh

Konfiguration auf einem Catalyst 9000-Switch:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource docker

Cat9k(config-app-hosting-docker)#run-opts 1 "-v $(APP_DATA):/data"

Cat9k(config-app-hosting-docker)#run-opts 2 "--entrypoint startup.sh"

Verwenden Sie den folgenden Befehl, um eine externe permanente Datenspeicherung durchzuführen: run-opts 1 "-v /vol/usb1/iox_host_data_share:/(APP_DATA)"

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource docker

Cat9k(config-app-hosting-docker)#run-opts 1 "-v /vol/usb1/iox_host_data_share:/(APP_DATA)"

Um eine Befehlszeile für die Ausführungsoption aus der Konfiguration zu entfernen, führen Sie den Befehl "no" aus, ähnlich wie in diesem Beispiel:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource docker

Cat9k(config-app-hosting-docker)#no run-opts 1 "-v /vol/usb1/iox_host_data_share:/(APP_DATA)"

Um alle Ausführungsoptionen in der Konfiguration einer Anwendung zu löschen, können Sie den Befehl no configuration ausführen:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#no app-resource docker

Liste nicht unterstützter Docker-Laufzeitoptionen

Die aufgeführten Docker-Befehlszeilenoptionen werden im Anwendungshosting-Framework aus Sicherheitsgründen oder weil die Optionen nicht auf die Linux-Plattform anwendbar sind, nicht unterstützt.

Docker-Option

Beschreibung

--hinzufügen

Anfügen an STDIN, STDOUT oder STDERR.

—BKO-Gerät

Geben Sie die Block-E/A-Gewichtung (relative Gerätegewichtung) an.

—cgroup-parent

Optionale übergeordnete Gruppe für den Container.

—cidfile

Schreiben Sie die Container-ID in eine angegebene Datei.

—cpu-count

Geben Sie die CPU-Anzahl an (nur Windows).

—CPU-Prozent

Geben Sie den CPU-Prozentsatz an (nur Windows).

—cpus

Geben Sie die Anzahl der CPUs an (API 1.25+).

—device-cgroup-rule

Fügen Sie eine Regel zur Liste der zulässigen Geräte hinzu.

—device-read-bps

Begrenzen Sie die Leserate (Byte pro Sekunde) eines Geräts.

—device-read-iops

Begrenzen Sie die Leserate (E/A pro Sekunde) eines Geräts.

—device-write-bps

Begrenzen Sie die Schreibgeschwindigkeit (Bytes pro Sekunde) für ein Gerät.

—device-write-iops

Begrenzen Sie die Schreibrate (E/A pro Sekunde) für ein Gerät.

—disable-content-trust

Bildüberprüfung überspringen.

—env-Datei

Umgebungsvariablen aus einer Datei laden.

—interactive (-i)

Halten Sie STDIN offen, auch wenn es nicht angeschlossen ist.

—ioMaxBandbreite

Maximale E/A-Bandbreitenbeschränkung für das Systemlaufwerk (nur Windows).

—io-maxiops

Maximales IOps-Limit für das Systemlaufwerk (nur Windows).

--ip

Geben Sie eine IPv4-Adresse an (Beispiel: 192.168.100.100)

—ip6

Geben Sie eine IPv6-Adresse an (Beispiel: 2001:db8::44).

—Isolierung

Geben Sie die Containerisolierungstechnologie an.

—link

Einen Link zu einem anderen Container hinzufügen.

--name

Zuweisen eines Namens zum Container

—oomkilldisable

Deaktivieren Sie den OOM-Killer für den Container.

—pid

Geben Sie den zu verwendenden PID-Namespace an.

--plattform

Geben Sie die Plattform an (experimentell; API 1.32+).

—privilegiert

Dem Container erweiterte Berechtigungen gewähren

—runtime

Geben Sie die Laufzeit für den Container an.

—storage-opt

Definieren Sie die Speichertreiberoptionen für den Container.

—sysctl

Geben Sie die sysctl-Optionen an.

—tty (-t)

Weisen Sie einen Pseudo-TTY zu.

—Benutzer

Geben Sie den zu verwendenden Benutzernamespace an.

—uts

Geben Sie den zu verwendenden UTS-Namespace an.

—volume-driver

Geben Sie einen optionalen Volumetreiber für den Container an.

Konfiguration

In den folgenden Abschnitten wird erläutert, wie Sie eine APP auf Catalyst 9000 konfigurieren und bereitstellen.

Anmerkung: Hier finden Sie einen Katalog mit Partnerlösungen, die nahtlos in Catalyst Switches der Serie 9000 integriert werden können.

Laden Sie das Docker-Image herunter, und kopieren Sie es mithilfe von SCP, FTP, TFTP oder USB auf Ihren Cisco Switch:

Cat9k#dir usbflash1:/

Directory of usbflash1:/

17      -rw-           5843233 Jan 23 2025 20:50:01 +00:00 MYAPP.tar

Konfigurieren Sie die Netzwerkparameter (für dieses Beispiel wird die AppGigabitEthernet-Schnittstelle, 192.168.1.10/24, unter VLAN 10 verwendet und verwenden Sie den Google-Resolver):

Cat9k(config)#interface AppGigabitEthernet 1/0/1

Cat9k(config-if)#switchport trunk allowed vlan 10

Cat9k(config-if)#exit

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-vnic AppGigabitEthernet trunk

Cat9k(config-config-app-hosting-trunk)#vlan 10 guest-interface 0

Cat9k(config-config-app-hosting-vlan-access-ip)#guest-ipaddress 192.168.1.10 netmask 255.255.255.0

Cat9k(config-config-app-hosting-vlan-access-ip)#exit

Cat9k(config-config-app-hosting-trunk)#exit

Cat9k(config-app-hosting)#app-default-gateway 192.168.1.1 guest-interface 0

Cat9k(config-app-hosting)#name-sever 8.8.8.8

Cat9k(config-app-hosting)#exit

Aktivieren Sie das IOx-Framework auf dem Switch, und warten Sie, bis alle Dienste ausgeführt werden:

Cat9k(config)#iox

Cat9k#show iox-service

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

Application DB Sync Info     : Available

Sync Status                  : Disable

Richten Sie die erforderlichen Docker-Ausführungsoptionen für die jeweilige App ein:

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource docker

Cat9k(config-app-hosting-docker)#run-opts 1 "

"

Cat9k(config-app-hosting-docker)#run-opts 2 "

"

Installieren Sie die Anwendung vom SSD, und überprüfen Sie ihre Bereitstellung:

Cat9k#app-hosting install appid MYAPP package usbflash1:MYAPP.tar

Installing package 'usbflash1:MYAPP.tar' for 'MYAPP'. Use 'show app-hosting list' for progress.

Cat9k#show app-hosting list

App id                                      State

---------------------------------------------------------

MYAPP                                       DEPLOYED

Aktivieren Sie die Anwendung, und überprüfen Sie ihren Status:

Cat9k#app-hosting activate appid MYAPP

MYAPP activated successfully

Current state is: ACTIVATED

Cat9k#show app-hosting list

App id                                      State

---------------------------------------------------------

MYAPP                                       ACTIVATED

Starten Sie die Anwendung, und überprüfen Sie ihren Ausführungsstatus:

Cat9k#app-hosting start appid MYAPP

MYAPP started successfully

Current state is: RUNNING

Cat9k#show app-hosting list

App id                                      State

---------------------------------------------------------

MYAPP                                       RUNNING

Speichern Sie Ihre Konfigurationsänderungen, um sicherzustellen, dass sie auch nach einem Neustart beibehalten werden:

Cat9k#app-hosting start appid MYAPP

MYAPP started successfully

Current state is: RUNNING

Cat9k#show app-hosting list

App id                                      State

---------------------------------------------------------

MYAPP                                       RUNNING

Fehlerbehebung

In dieser Tabelle sind die verschiedenen Befehle aufgeführt, die zur Fehlerbehebung beim App-Hosting verwendet werden können:

Command

Zweck

show iox-service

Zeigt die Schnittstellenfehlerindikatoren an.

App-Hostingliste anzeigen

Zeigt die Liste der installierten Appliances an

show app-hosting detail appid MYAPP

Zeigt detaillierte Informationen zur Appliance an

App-Hosting-Ressource anzeigen

Zeigt die verfügbaren Ressourcen an

App-Hosting-Nutzung anzeigen App-ID MYAPP

Zeigt Nutzungsinformationen über die Appliance an

app-hosting move appid MYAPP log to bootflash:

Verwenden Sie diesen Befehl, um anwendungsspezifische Ablaufverfolgungsprotokolle zu erfassen, falls vorhanden.

app-hosting move system techsupport nach ?

Bootflash:                 Zielpfad

crashinfo-1:             Zielpfad

Crashfo:                 Zielpfad

Flash-1:                    Zielpfad

Blitz:                        Zielpfad

WebUI:                      Zielpfad

Verwenden Sie diesen Befehl, um den Systemtechniksupport in ein alternatives Verzeichnis zu verschieben.

App-Hosting-Infrastruktur anzeigen

Verwenden Sie diesen Befehl, um zu überprüfen, ob die Signaturüberprüfung aktiviert ist.

Tipp: Die Überprüfung der Anwendungssignatur kann nur deaktiviert werden, wenn die gehostete Anwendung USB/SSD als Medium verwendet.

App-Hosting-Verifizierung?

App-Überprüfung deaktivieren

Aktivieren der App-Verifizierung

Mit diesem Befehl können Sie die Signaturüberprüfung aktivieren/deaktivieren (über den CLI-privilegierten Modus).

app-hosting connect appid MYAPP session

Verwenden Sie diesen Befehl, um auf die App-Konsole zuzugreifen und den Status der Prozesse im Container (über den CLI-Berechtigungsmodus) zu überprüfen.

Docker-Container ändern

Wenn Docker geändert werden muss, gehen Sie wie folgt vor:

- Anwendung anhalten:

Cat9k#app-hosting stop appid MYAPP

MYAPP stopped successfully

Current state is: STOPPED

- Anwendung deaktivieren:

Cat9k#app-hosting deactivate appid MYAPP

MYAPP deactivated successfully

Current state is: DEPLOYED

- Ändern Sie die Docker-Optionen:

Cat9k#app-hosting start appid MYAPP

Cat9k(config)#app-hosting appid MYAPP

Cat9k(config-app-hosting)#app-resource docker

Cat9k(config-app-hosting-docker)#prepend-pkg-opts

Cat9k(config-app-hosting-docker)#

Cat9k(config-app-hosting-docker)#exit

Cat9k(config-app-hosting)#exit

Cat9k(config)#exit

- Anwendung reaktivieren:

Cat9k#app-hosting activate appid MYAPP

MYAPP activated successfully

Current state is: STOPPED

- Anwendung starten:

Cat9k#app-hosting start appid MYAPP

MYAPP started successfully

Current state is: RUNNING

Zugehörige Informationen

- Whitepaper "Application Hosting auf Cisco Catalyst Switches der Serie 9000"

- Anwendungsmarkt

- Anwendungshosting im Unternehmen