App-Workloads aus Images in einer privaten Registry bereitstellen
Implementieren Sie Ihre App mit Code Engine, das ein Image in einer privaten Registry wie z. B. dem privaten Docker Hub verwendet. Sie können die App in der Konsole oder in der Befehlszeilenschnittstelle erstellen.
Vorbereitende Schritte
- Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Informationen zum Erstellen einer privaten „ Docker “-Hub-Registrierung finden Sie beispielsweise in der Dokumentation zum „ Docker “-Hub.
- Nachdem Sie ein privates Repository erstellt haben, laden Sie ein Image dorthin hoch.
- Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.
App, die auf ein Image in einer privaten Registry verweist, über die Konsole bereitstellen
Stellen Sie eine Anwendung, die ein Image in einer privaten Registry verwendet, mit der Code Engine-Konsole bereit.
Bevor Sie mit einer Code Engine-Anwendung arbeiten können, die auf ein Image in einer privaten Registry verweist, müssen Sie zunächst den Zugriff auf die Registry hinzufügen, das Image extrahieren und anschließend implementieren.
- Öffnen Sie die Code Engine-Konsole.
- Wählen Sie „ Mit der Erstellung beginnen “.
- Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Sie müssen über ein ausgewähltes Projekt verfügen, um eine Anwendung bereitstellen zu können.
- Wählen Sie Anwendung aus.
- Geben Sie einen Namen für die Anwendung ein. Beispiel:
helloapp. Verwenden Sie einen Namen für die Anwendung, der innerhalb des Projekts eindeutig ist. - Wählen Sie „ Vorhandenes Container-Image verwenden “ aus und klicken Sie auf „ Image konfigurieren “.
- Geben Sie
docker.ioals Registry-Server ein. - Wählen Sie für das Registrierungsgeheimnis die Option „ Registrierungsgeheimnis erstellen “ aus.
- Wählen Sie auf der Seite „Registrierungsgeheimnis erstellen“ Ihre Registrierungsquelle aus. Beispiel: Docker Hub.
- Geben Sie einen Benutzernamen ein. Der Name für Docker Hub ist die Docker-ID.
- Geben Sie das Zugriffstoken ein. Für Docker Hub können Sie Ihr Docker-Hub-Kennwort oder ein Zugriffstoken verwenden. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.
- Klicken Sie auf „Erstellen“, um einen Registrierungsschlüssel für „ Code Engine “ hinzuzufügen.
- Auf der Seite „Image konfigurieren“ wird das hinzugefügte Registrierungsgeheimnis aufgeführt. Wählen Sie das Registry-Secret für Ihr Image aus.
- Wählen Sie den Namensbereich und den Namen des Images in Docker Hub als Referenz für die Code Engine-App aus. Wählen Sie beispielsweise den Namensbereich
mynamespaceund das Imagehello_repoin diesem Namensbereich aus. - Wählen Sie einen Wert für Tag aus; z. B.
latest. - Klicken Sie auf Fertig. Hiermit haben Sie Ihr Image in der Registry als Referenz für die App ausgewählt.
- Ändern Sie alle Laufzeiteinstellungen bzw. Umgebungsvariablen für Ihre App. Weitere Informationen zu diesen Optionen finden Sie unter Optionen für Endpunktsichtbarkeit von Apps und Optionen für die Bereitstellung einer App.
- Klicken Sie auf der Seite 'Anwendung erstellen' auf Erstellen.
- Nachdem sich der Anwendungsstatus in Bereit geändert hat, können Sie die Anwendung testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.
Nachdem Sie Ihre Anwendung bereitgestellt haben, können Sie nun Informationen zu Anwendungsrevisionen und zu allen aktiven Instanzen sowie Konfigurationsdetails anzeigen.
Falls Sie den Registry-Zugriff vor der Erstellung einer App hinzufügen wollen, finden Sie im Abschnitt Zugriff auf eine private Container-Registry hinzufügen weiterführende Informationen.
App mit einem Image aus einer privaten Registry mit CLI implementieren
Mit dem Befehl ibmcloud ce app create können Sie über die Befehlszeilenschnittstelle eine Anwendung bereitstellen, die ein Image in einer Container-Registry nutzt.
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
Bevor Sie mit einer Code Engine-Anwendung arbeiten können, die auf ein Image in einer privaten Registry verweist, müssen Sie zunächst den Zugriff auf die Registry hinzufügen, das Image extrahieren und anschließend implementieren.
-
Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Informationen zum Erstellen einer privaten „ Docker “-Hub-Registrierung finden Sie beispielsweise in der Dokumentation zum „ Docker “-Hub. Nachdem Sie ein privates Repository erstellt haben, laden Sie ein Image dorthin hoch. Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.
-
Fügen Sie Zugriff auf Ihre private Registry hinzu, um Images zu extrahieren. Um Zugriff auf eine private Registry über die CLI hinzuzufügen, verwenden Sie den Befehl
ibmcloud ce secret create --format registry, um einen geheimen Registry-Schlüssel zu erstellen. Der folgende Befehl richtet beispielsweise einen Registrierungszugriff auf eine „ Docker Hub“-Registrierung namens „privatedocker“ ein, die sich unter'https://index.docker.io/v1/'befindet, und verwendet dabei Ihren Benutzernamen und Ihr Passwort.ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>Beispielausgabe
Creating registry secret 'privatedocker'... OK -
Erstellen Sie Ihre App und verweisen Sie auf das Image in Ihrer privaten Docker-Hub-Registry. Erstellen Sie beispielsweise die App
myhelloappzur Referenzierung vondocker.io/privaterepo/helloworldmithilfe der Zugriffsinformationen vonprivatedocker.ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedockerDer Name des Images für diese Anwendung hat das Format
REGISTRY/NAMESPACE/REPOSITORY:TAG, wobei Angaben fürREGISTRYundTAGoptional sind. WirdREGISTRYnicht angegeben, istdocker.ioder Standardwert. WirdTAGnicht angegeben, istlatestder Standardwert. -
Nachdem Ihre App bereitgestellt wurde, können Sie auf die App zugreifen. Um die URL Ihrer App abzurufen, führen Sie den Befehl
ibmcloud ce app get --name myhelloapp --output urlaus. Wenn Sie cURL bei dermyhelloapp-App anwenden, wirdHello Worldzurückgegeben.curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
Nächste Schritte
-
Nachdem Ihre App bereitgestellt wurde, greifen Sie über eine URL auf Ihre App zu.
-
Sie können eine angepasste Domänenzuordnung erstellen und sie Ihrer App zuweisen. Weitere Informationen zum Bereitstellen von Apps in mehreren Regionen mit einem angepassten Domänennamen finden Sie unter Hoch verfügbare Anwendung konfigurieren.
-
Nachdem Ihre App nun bereitgestellt ist, sollten Sie darüber nachdenken, Ihre Apps ereignisgesteuert zu gestalten. Mithilfe von Ereignissubskriptionen können Sie Ihre Apps durch regelmäßige Zeitpläne auslösen oder festlegen, dass Ihre App auf Ereignisse wie Dateiuploads oder Kafka-Nachrichten reagiert.
Nachdem Ihre App bereitgestellt wurde, können Sie Ihre bereitgestellte App aktualisieren und den zugehörigen referenzierten Code auf irgendeine der folgenden Arten verwenden, unabhängig davon, wie Sie Ihre App erstellt oder zuvor aktualisiert haben:
-
Wenn Sie über ein Container-Image gemäß dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie beim Bereitstellen Ihrer App lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihre App mit einem Image in einer öffentlichen Registry oder privaten Registry bereitstellen.
Wenn Sie Ihre App mit dem Befehl
app createerstellt und die Option--build-sourceangegeben haben, um das Container-Image aus einer lokalen Quelle oder einer Repository-Quelle zu erstellen, und Sie Ihre App so ändern wollen, dass sie auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrer App entfernen. Führen Sie beispielsweiseibmcloud ce application update -n APP_NAME --build-clearaus. Nachdem Sie die Zuordnung des Builds aus Ihrer App entfernt haben, können Sie die App aktualisieren, sodass sie auf ein anderes Image verweist. -
Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einer einzigen Operation bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus Repository-Quellcode bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.
-
Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einem einzelnen CLI-Befehl bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus lokalem Quellcode über die CLI bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.
Sie könnten beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle handhaben soll, während Sie Ihre Quelle für die App weiterentwickeln. Nachdem das Image ausgereift ist, können Sie die bereitgestellte App aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.
Wenn Sie Ihre aktualisierte App bereitstellen, wird die neueste Version Ihres referenzierten Container-Image heruntergeladen und bereitgestellt, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Implementierung verwendet.
Benötigen Sie weitere Codebeispiele? Schaut euch die Beispiele im Repository „ IBM Cloud Code Engine “ unter GitHub an.