Übung: Veröffentlichen eines NVIDIA DeepStream Graph Composer-Containers in Azure Container Registry

Abgeschlossen

Nachdem Sie eine DeepStream Graph Composer-Anwendung in einen Container gepackt haben, können Sie dieses Artefakt in eine Instanz von Azure Container Registry veröffentlichen, um eine sichere Verteilung auf andere unterstützte Geräte zu ermöglichen.

Diese Vorbereitung schafft auch die Voraussetzungen für eine mögliche Bereitstellung mithilfe von Azure IoT Edge, die im nächsten Modul ausführlicher behandelt wird.

  1. Befolgen Sie zunächst die Anweisungen zum Erstellen einer Containerregistrierung. In diesem Dokument wird beschrieben, wie Sie die notwendigen Container Registry-Ressourcen in Microsoft Azure instanziieren können und wie Images bei diesem Dienst angemeldet und an diesen gepusht werden. Nachdem Sie die in diesem Abschnitt beschriebenen Schritte durchgeführt haben, veröffentlichen Sie Ihr DeepStream Graph Composer-Containerartefakt in dieser Registrierung.

    Befolgen Sie die unter Schnellstart: Erstellen einer Azure-Containerregistrierung über das Azure-Portal beschriebenen Schritte. Sie müssen nur die Schritte zum Erstellen einer Containerregistrierung ausführen. Die zusätzlichen in der Dokumentation erwähnten Schritte sind optional. Fahren Sie mit den nächsten Schritten fort, nachdem Sie diese Aufgabe abgeschlossen haben.

  2. Wechseln Sie im Azure-Portal zu Ihrer neu bereitgestellten Instanz von Container Registry:

    Screenshot: Übersicht über Azure Container Registry

    Sie werden feststellen, dass Ihre Containerregistrierung über die Eigenschaft Anmeldeserver verfügt, die auf die URL für den Remotezugriff auf den Dienst verweist. Dieses Eigenschaft endet mit „azurecr.io“. Notieren Sie sich diesen Wert, da Sie ihn bald benötigen.

  3. Wählen Sie als Nächstes den Abschnitt Zugriffsschlüssel auf der linken Seite unter Einstellungen aus, und aktivieren Sie die Option für Administratorbenutzer. Durch diesen Vorgang können Sie sich bei Ihrer Containerregistrierung authentifizieren, um den Zugriff von der Docker-Instanz zuzulassen, die auf Ihrem Hostcomputer ausgeführt wird. Notieren Sie sich erneut die Werte für Anmeldeserver, Benutzername und Kennwort, da diese im nächsten Schritt verwendet werden.

    Screenshot: Container Registry-Zugriffsschlüssel

  4. Jetzt können Sie sich bei Ihrer Containerregistrierung authentifizieren und Zugriff auf die Docker-Instanz des Hosts gewähren. Führen Sie die folgenden Befehle in einer Terminalsitzung auf dem Hostcomputer aus, um dies zu tun:

    sudo docker login <Login server>
    
    1. Wenn Sie zur Eingabe des Benutzernamens aufgefordert werden, geben Sie den im Abschnitt Zugriffsschlüssel in Ihrer Containerregistrierung angegeben Wert im Azure-Portal ein.

    2. Wenn Sie zur Eingabe des Kennworts aufgefordert werden, geben Sie den im Abschnitt Zugriffsschlüssel in Ihrer Containerregistrierung angegeben Wert im Azure-Portal ein.

    3. Nach erfolgreicher Eingabe sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Anmeldung erfolgreich war.

  5. Bevor Sie Ihr kürzlich erstelltes Docker-Image in Ihre Containerregistrierung pushen können, müssen Sie das Image markieren, damit auf die Containerregistrierung verwiesen wird. Führen Sie den folgenden Befehl in einem Terminal auf dem Hostcomputer aus:

    sudo docker tag deepstream_test1_dgpu <Login Server>/deepstream_test1_dgpu:v1
    
  6. Pushen Sie Ihr DeepStream Graph Composer-Containerimage in dieses Repository, indem Sie den folgenden Befehl ausführen:

    sudo docker push <Login Server>/deepstream_test1_dgpu:v1
    
  7. Warten Sie, bis der Push abgeschlossen ist. Wechseln Sie dann zurück zu Ihrer Containerregistrierung im Azure-Portal, und überprüfen Sie, ob das Image hochgeladen wurde. Wählen Sie zur Überprüfung Repositorys unter dem Abschnitt Dienste auf der linken Seite der Übersichtsseite aus. Dort sollte wie auf diesem Bild gezeigt das gerade eben gepushte Image deepstream_test1_dgpu:v1 in der Repositoryliste angezeigt werden:

    Screenshot: Azure Container Registry-Repositoryliste

  8. Wenn Sie dieses Image mithilfe des in Ihrer Containerregistrierung erhaltenen Images ausführen möchten, führen Sie die folgenden Befehle in einem Terminal auf einem kompatiblen Host aus:

    sudo docker run -it --rm --gpus all -v /tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=:0 
    <Login server>/deepstream_test1_dgpu:v1
    

    Hinweis

    Wenn Sie diese Workload auf einem Computer ausführen möchten, der nicht der aktuelle Host aus, mit dem Sie gearbeitet haben, müssen Sie den Zugriff auf X11 mit sudo xhost + aktivieren und Ihre Docker-Instanz für den Zugriff auf Ihre Containerregistrierung authentifizieren.

Herzlichen Glückwunsch! Sie haben erfolgreich Ihre erste DeepStream Graph Composer-Anwendung erstellt und in einer sicheren Containerregistrierung veröffentlicht, um die Verteilung Ihrer Workload auf verschiedene kompatible Hosts zu ermöglichen.

Probieren Sie es aus

Stellen Sie sich vor, dass Ihnen die Aufgabe übertragen wurde, eine IVA-Anwendung zu entwickeln, mit der die Anzahl der Personen gezählt werden soll, die ein Restaurant betreten. Ihr Entwicklungsteam arbeitet eng mit dem Testteam zusammen, das die Genauigkeit der IVA-Lösung überprüft, bevor sie in der Produktion bereitgestellt wird. Wie können Sie neue Builds der IVA-Anwendung so an das Testteam verteilen, dass keine manuelle Neukonfiguration der Testhardware erforderlich ist?