MobileFirst Application Center mit Scripts in einem IBM Cloud-Kubernetes-Cluster einrichten

improve this page | report issue


Hinweis: Für die Softwareimplementierung in einem Kubernetes-Cluster sollten Sie Helm nutzen. Informieren Sie sich über die Implementierung der Mobile Foundation in einem IBM Cloud-Kubernetes-Cluster unter Verwendung von Helm-Charts.

Übersicht

Folgen Sie den Anweisungen in diesem Abschnitt, um eine MobileFirst-Application-Center-Instanz in IBM Cloud zu konfigurieren. Gehen Sie dazu die folgenden Schritte durch:

  • Erstellen Sie einen Kubernetes-Cluster vom Typ “Standard” (bezahlter Cluster).
  • Richten Sie Ihren Host-Computer mit den erforderlichen Tools ein (Docker, Cloud-Foundry-CLI (cf), IBM Cloud-CLI (bx), CLI des Container-Service-Plug-ins für IBM Cloud (bx cs), CLI des Container-Registry-Plug-ins für IBM Cloud (bx cr), Kubernetes-CLI (kubectl)).
  • Erstellen Sie ein Docker-Image des MobileFirst Application Center und stellen Sie es per Push-Operation in das IBM Cloud-Repository.
  • Abschließend werden Sie das Docker-Image in einem Kubernetes-Cluster ausführen.

Hinweis:

  • Das Windows-Betriebssystem wird derzeit nicht für die Ausführung dieser Scripts unterstützt.
  • Die MobileFirst-Server-Konfigurationstools können nicht für die Implementierung in IBM Containern genutzt werden.

Fahren Sie mit folgenden Abschnitten fort:

Konto in IBM Cloud registrieren

Falls Sie noch kein Konto haben, öffnen Sie die IBM Cloud-Website und klicken Sie auf Kostenloses Konto erstellen oder auf Anmeldung. Sie müssen das Registrierungsformular ausfüllen, bevor Sie mit dem nächsten Schritt fortfahren können.

IBM Cloud-Dashboard

Nachdem Sie sich bei IBM Cloud angemeldet haben, wird das IBM Cloud-Dashboard angezeigt, das Ihnen einen Überblick über den aktiven IBM Cloud-Bereich gibt. Standardmäßig hat dieser Arbeitsbereich den Namen dev. Bei Bedarf können Sie mehrere Arbeitsbereiche erstellen.

Hostmaschine einrichten

Für die Verwaltung von Containern und Images müssen Sie die folgenden Tools installieren:

  • Docker
  • IBM Cloud-CLI (bx)
  • CLI des Container-Service-Plug-ins für IBM Cloud (bx cs)
  • CLI des Container-Registry-Plug-ins für IBM Cloud (bx cr)
  • Kubernetes-CLI (kubectl)

In der IBM Cloud-Dokumentation sind die Konfigurationsschritte für die vorausgesetzten CLIs beschrieben.

Kubernetes-Cluster mit dem Container-Service von IBM Cloud erstellen und einrichten

Informationen zum Einrichten eines Kubernetes-Clusters in IBM Cloud finden Sie in der IBM Cloud-Dokumentation.

Hinweis: Für die Implementierung der Mobile Foundation ist ein Kubernetes-Cluster vom Typ “Standard” (bezahlter Cluster) erforderlich.

Archiv ibm-mfpf-container-8.0.0.0 herunterladen

Wenn Sie das MobileFirst Application Center als Kubernetes-Cluster mit IBM Cloud-Containern einrichten möchten, müssen Sie zunächst ein Image erstellen, das später per Push-Operation in IBM Cloud übertragen wird.
Vorläufige Fixes für MobileFirst Server in IBM Containern können über IBM Fix Central abgerufen werden.
Laden Sie den letzten vorläufigen Fix von Fix Central herunter. Ab iFix 8.0.0.0-IF201708220656 ist Kubernetes-Unterstützung verfügbar.

Die Archivdatei enthält die Dateien für die Erstellung eines Image (dependencies und mfpf-libs) sowie die Dateien für die Erstellung und Implementierung eines MobileFirst Application Center in Kubernetes (bmx-kubernetes).

Dateisystemstruktur der Archivdatei

Ordner bmx-kubernetes

Dieser Ordner enthält die Anpassungsdateien und Scripts für die Implementierung eines Kubernetes-Clusters mit dem Container-Service von IBM Cloud.

Dockerfile-mfp-appcenter

  • Dockerfile-mfp-appcenter: Textdokument mit allen Befehlen, die für das Erstellen des MobileFirst-Application-Center-Image erforderlich sind.
  • Ordner scripts: Dieser Ordner enthält den Ordner args mit einer Reihe von Konfigurationsdateien. Er enthält außerdem die erforderlichen Scripts für die Anmeldung bei IBM Cloud, die Erstellung eines Image für das MobileFirst Application Center und die Push-Übertragung und Ausführung des Image in IBM Cloud. Sie können diese Scripts interaktiv ausführen oder die Konfigurationsdateien wie weiter unten erläutert für die Ausführung der Scripts vorkonfigurieren. Anders als bei den anpassbaren Dateien args/*.properties dürfen Sie in diesem Ordner keine Elemente modifizieren. Verwenden Sie das Befehlszeilenargument -h oder --help, um einen Hilfetext zur Scriptsyntax abzurufen (z. B. Scriptname.sh --help).
  • Ordner usr-mfp-appcenter:
    • Ordner bin: Enthält die Scriptdatei (mfp-appcenter-init), die beim Start des Containers ausgeführt wird. Sie können eigenen Code hinzufügen, der ausgeführt werden soll.
    • Ordner config: Für MobileFirst Application Center verwendete Serverkonfigurationsfragmente (Keystore, Servereigenschaften, Benutzerregistry)
    • keystore.xml: Konfiguration des Repositorys mit Sicherheitszertifikaten für die SSL-Verschlüsselung. Im Ordner ./usr/security muss auf die aufgelisteten Dateien verwiesen werden.
    • ltpa.xml: Konfigurationsdatei mit der Definition des LTPA-Schlüssels und des zugehörigen Kennworts
    • appcentersqldb.xml: JDBC-Datenquellendefinition für die Verbindung zur Db2- oder dashDB-Datenbank
    • registry.xml: Benutzerregistrykonfiguration. Als Standardkonfiguration wird eine auf XML basierende Basisbenutzerregistrykonfiguration (basicRegistry) bereitgestellt. Sie können Namen und Kennwörter für basicRegistry konfigurieren oder ldapRegistry konfigurieren.
    • tracespec.xml: Tracespezifikation, um ein Debug zu ermöglichen, sowie Protokollierungsstufen
  • Ordner jre-security: Sie können die sicherheitsrelevanten JRE-Dateien (Truststore, JAR-Richtliniendateien usw.) aktualisieren, indem Sie sie in diesen Ordner stellen. Die Dateien aus diesem Ordner werden in den Ordner JAVA_HOME/jre/lib/security/ des Containers kopiert.
  • Ordner security: Wird verwendet, um die Keystore-Datei, die Truststore-Datei und die LTPA-Schlüsseldatei (ltpa.keys) zu speichern.
  • Ordner env: Enthält die Umgebungseigenschaften für die Serverinitialisierung (server.env) sowie angepasste JVM-Optionen (jvm.options).

  • Eigenschaft Standardwert Beschreibung
    APPCENTER_SERVER_HTTPPORT 9080* Port für Client-HTTP-Anforderungen. Mit -1 können Sie diesen Port inaktivieren.
    APPCENTER_SERVER_HTTPSPORT 9443* Port für Client-HTTP-Anforderungen, die mit SSL (HTTPS) geschützt werden. Mit -1 können Sie diesen Port inaktivieren.
    APPCENTER_ROOT applicationcenter Kontextstammverzeichnis, in dem die Verwaltungsservices für das MobileFirst Application Center verfügbar gemacht werden
    APPCENTER_CONSOLE_ROOT appcenterconsole Kontextstammverzeichnis, in dem die MobileFirst-Application-Center-Konsole verfügbar gemacht wird
    APPCENTER_ADMIN_GROUP appcenteradmingroup Name der Benutzergruppe, der die vordefinierte Rolle appcenteradmin zugeordnet ist
    APPCENTER_USER_GROUP appcenterusergroup Name der Benutzergruppe, der die vordefinierte Rolle appcenteruser zugeordnet ist

    Abschnitt schließen
  • Ordner dependencies: Enthält die Laufzeit der Mobile Foundation und IBM Java JRE 8
  • Ordner mfpf-libs: Enthält die Bibliotheken für die MobileFirst-Produktkomponenten und die CLI

Abschnitt schließen

Voraussetzungen

Sie müssen über praktische Erfahrungen mit Kubernetes verfügen. Weitere Informationen enthalten die Kubernetes-Dokumente.

MobileFirst Application Center in einem Kubernetes-Cluster mit IBM Containern einrichten

Wie bereits erläutert, können Sie die Scripts interaktiv oder unter Verwendung der Konfigurationsdateien ausführen.

  • Verwendung der Konfigurationsdateien: Führen Sie die Scripts aus und übergeben Sie die entsprechende Konfigurationsdatei als Argument.
  • Interaktiv: Führen Sie die Scripts ohne Argumente aus.

Hinweis: Wenn Sie sich entschließen, die Scripts interaktiv auszuführen, können Sie die Konfiguration übergehen. Wir empfehlen Ihnen jedoch, sich mit den Argumenten, die angegeben werden müssen, zu beschäftigen.

Bei interaktiver Ausführung wird eine Kopie der angegebenen Argumente im Verzeichnis ./recorded-args/ gespeichert. Sie können somit beim ersten Mal den interaktiven Modus nutzen und bei künftigen Implementierungen die Eigenschaftendateien wiederverwenden.

Der Ordner args enthält Konfigurationsdateien mit den Argumenten, die zum Ausführen der Scripts erforderlich sind. Tragen Sie die Argumentwerte in den folgenden Dateien ein:

initenv.properties

  • IBM_CLOUD_API_URL - Zielgeografie oder -region für die Implementierung
    Beispiel: api.ng.bluemix.net für die USA oder api.eu-de.bluemix.net für Deutschland oder api.au-syd.bluemix.net für Sydney
  • IBM_CLOUD_ACCOUNT_ID - Ihre Konto-ID in Form eines alphanumerischen Wertes wie a1b1b111d11e1a11d1fa1cc999999999
    Mit dem Befehl bx target können Sie die Konto-ID abrufen.
  • IBM_CLOUD_USER - Ihr IBM Cloud-Benutzername (E-Mail-Adresse)
  • IBM_CLOUD_PASSWORD - Ihr IBM Cloud-Kennwort
  • IBM_CLOUD_ORG - Ihr IBM Cloud-Organisationsname
  • IBM_CLOUD_SPACE - Ihr IBM Cloud-Bereich (wie oben erläutert)

prepareappcenterdbs.properties

Das MobileFirst Application Center erfordert eine externe Instanz von Db2 on Cloud.
Hinweis: Sie können auch Ihre eigene Db2-Datenbank verwenden. Der IBM Cloud-Kubernetes-Cluster muss für eine Verbindung zu der Datenbank konfiguriert werden.
Wenn Sie Ihre Db2-Instanz eingerichtet haben, geben Sie die folgenden erforderlichen Argumente an:
  • DB_TYPE - dashDB (wenn Sie Db2 on Cloud verwenden) oder DB2 (wenn Sie Ihre eigene Db2-Datenbank verwenden)
  • Bei Verwendung einer eigenen Db2-Datenbank (d. h. DB_TYPE=DB2) machen Sie folgende Angaben:
    • DB2_HOST - Hostname in Ihrem Db2-Setup
    • DB2_DATABASE - Name der Datenbank
    • DB2_PORT - Port für die Verbindung zur Datenbank
    • DB2_USERNAME - Db2-Datenbankbenutzer (der berechtigt sein muss, Tabellen im bereitgestellten Schema zu erstellen oder beim Fehlen eines Schemas ein Schema zu erstellen)
    • DB2_PASSWORD - Kennwort des Db2-Benutzers
  • Wenn Sie Db2 on Cloud verwenden (d. h. DB_TYPE=dashDB), machen Sie folgende Angaben:
    • APPCENTER_DB_SRV_NAME - Name Ihrer dashDB-Serviceinstanz für das Speichern von Application-Center-Daten
  • APPCENTER_SCHEMA_NAME - Name Ihres Schemas für Application-Center-Daten. Der Standardwert ist APPCNTR.
  • Hinweis: Wenn Ihr Db2-Datenbankservice von vielen Benutzern oder mehreren MobileFirst-Application-Center-Implementierungen gemeinsam genutzt wird, stellen Sie sicher, dass eindeutige Schemanamen angegeben werden.

prepareappcenter.properties

  • SERVER_IMAGE_TAG - Ein Tag für das Image. Der Tag sollte das Format registry-url/namespace/image:tag haben.
  • Beispiel: registry.ng.bluemix.net/myuniquenamespace/myappcenter:v1
    Wenn Sie noch keinen Docker-Registry-Namespace erstellt haben, erstellen Sie ihn mit einem der folgenden Befehle:
    • bx cr namespace-add myuniquenamespace
    • bx cr namespace-list

Die folgenden Anweisungen demonstrieren die Ausführung der Scripts unter Verwendung der Konfigurationsdateien. Eine Liste mit Befehlszeilenargumenten für einen nicht interaktiven Modus wird ebenfalls bereitgestellt.

  1. initenv.sh – Anmeldung bei IBM Cloud
    Führen Sie das Script initenv.sh aus, um eine Umgebung für die Erstellung und Ausführung von MobileFirst Application Center in IBM Containern zu erstellen: Interaktiver Modus
    ./initenv.sh
    Nicht interaktiver Modus
    ./initenv.sh args/initenv.properties
  2. prepareappcenterdbs.sh - Erstellung der MobileFirst-Application-Center-Datenbank
    Das Script prepareappcenterdbs.sh wird verwendet, um Ihren MobileFirst Application Center mit dem Db2-Datenbankservice zu konfigurieren. Die Instanz des Db2-Service muss in der Organisation und dem Bereich verfügbar sein, bei denen Sie sich in Schritt 1 angemeldet haben. Führen Sie Folgendes aus: Interaktiver Modus
    ./prepareappcenterdbs.sh
    Nicht interaktiver Modus
    ./prepareappcenterdbs.sh args/prepareappcenterdbs.properties
  3. initenv.sh (optional) – Anmeldung bei IBM Cloud
    Dieser Schritt ist nur erforderlich, wenn Sie Ihre Container in einer Organisation und einem Bereich ohne verfügbare Db2-Serviceinstanz erstellen müssen. Wenn das der Fall ist, aktualisieren Sie die Datei initenv.properties mit der neuen Organisation und dem neuen Bereich, in denen die Container erstellt (und gestartet) werden müssen. Führen Sie dann erneut das Script initenv.sh aus:
    ./initenv.sh args/initenv.properties
  4. prepareappcenter.sh - Erstellung eines MobileFirst-Application-Center-Image
    Führen Sie das Script prepareappcenter.sh aus, um das MobileFirst-Application-Center-Image zu erstellen und per Push-Operation in Ihr IBM Cloud-Repository zu stellen. Wenn Sie alle verfügbaren Images in Ihrem IBM Cloud-Repository anzeigen möchten, führen Sie bx cr image-list aus.
    Die Liste enthält den Image-Namen, das Erstellungsdatum und die ID.
    Interaktiver Modus
    ./prepareappcenter.sh
    Nicht interaktiver Modus
    ./prepareappcenter.sh args/prepareappcenter.properties
  5. Implementieren Sie das MobileFirst Application Center in Docker-Containern eines Kubernetes-Clusters mit dem Container-Service von IBM Cloud.
    1. Legen Sie Ihren Cluster als Terminalkontext fest:
      bx cs cluster-config my-cluster
      Führen Sie den folgenden Befehl aus, um Ihren Clusternamen zu erfahren:
      bx cs clusters
      In der Ausgabe wird der Pfad zu Ihrer Konfigurationsdatei als Befehl zum Definieren einer Umgebungsvariablen angezeigt. Beispiel:
      export KUBECONFIG=/Users/ibm/.bluemix/plugins/container-service/clusters/my-cluster/kube-config-prod-dal12-my-cluster.yml
      Kopieren Sie den obigen Befehl. Ersetzen Sie my-cluster durch Ihren Clusternamen und fügen Sie den Befehl dann ein, um die Umgebungsvariable für Ihr Terminal festzulegen. Drücken Sie abschließend die Eingabetaste.
    2. Führen Sie den folgenden Befehl aus, um Ihre Ingress Domain (Zugangsdomäne) abzurufen:
      bx cs cluster-get my-cluster
      Notieren Sie Ihre Zugangsdomäne. Wenn Sie TLS konfigurieren müssen, notieren Sie den geheimen Zugangsschlüssel (Ingress Secret).
    3. Erstellen Sie die Kubernetes-Implementierungen.
      Bearbeiten Sie die yaml-Datei args/mfp-deployment-appcenter.yaml. Tragen Sie alle Details ein. Alle Variablen müssen vor Ausführung des Befehls kubectl durch die entsprechenden Werte ersetzt werden.
      ./args/mfp-deployment-appcenter.yaml enthält die Implementierung für Folgendes:
      • Kubernetes-Implementierung für das MobileFirst Application Center, bestehend aus einer Instanz (1 Replikat), mit einem Hauptspeicher von 1024 MB und einer CPU mit einem Kern
      • Kubernetes-Service für MobileFirst Application Center
      • Zugang für das gesamte Setup mit allen REST-Endpunkten für das MobileFirst Application Center
      • Konfigurationsübersicht (configMap), um die Umgebungsvariablen in der MobileFirst-Application-Center-Instanz verfügbar zu machen
      In der YAML-Datei müssen folgende Werte bearbeitet werden:
      1. Verschiedene Vorkommen von my-cluster.us-south.containers.mybluemix.net mit der vom obigen Befehl bx cs cluster-get ausgegebenen Zugangsdomäne (Ingress Domain)
      2. registry.ng.bluemix.net/repository/mfpappcenter:latest - Verwenden Sie zum Hochladen des Image die gleichen Namen wie in prepareappcenter.sh.
      Führen Sie den folgenden Befehl aus:
      kubectl create -f ./args/mfp-deployment-appcenter.yaml
      Hinweis:
      Folgende YAML-Schablonendateien werden bereitgestellt:
      • mfp-deployment-appcenter.yaml: Implementiert das MobileFirst Application Center mit HTTP.
      • mfp-deployment-appcenter-with-tls.yaml: Implementiert das MobileFirst Application Center mit HTTPS.
      Nach der Erstellung müssen Sie den folgenden Befehl ausführen, um das Kubernetes-Dashboard verwenden zu können:
      kubectl proxy
      Öffnen Sie localhost:8001/ui in Ihrem Browser.

Container in IBM Cloud entfernen

Wenn Sie in IBM Cloud einen Container entfernen, müssen Sie auch den Image-Namen aus der Registry entfernen.
Führen Sie die folgenden Befehle aus, um einen Container in IBM Cloud zu entfernen:

  1. cf ic ps (Listet die zurzeit aktiven Container auf)
  2. cf ic stop container_id (Stoppt den Container)
  3. cf ic rm container_id (Entfernt den Container)

Führen Sie die folgenden cf ic-Befehle aus, um einen Image-Namen aus der IBM Cloud-Registry zu entfernen:

  1. cf ic images (Listet die Images in der Registry auf)
  2. cf ic rmi image_id (Entfernt ein Image aus der Registry)

Kubernetes-Implementierungen aus IBM Cloud entfernen

Führen Sie die folgenden Befehle aus, um Ihre implementierten Instanzen aus dem IBM Cloud-Kubernetes-Cluster zu entfernen:

kubectl delete -f mfp-deployment-appcenter.yaml (entfernt alle in der YAML-Datei definierten Kubernetes-Typen)

Führen Sie die folgenden Befehle aus, um einen Image-Namen aus der IBM Cloud-Registry zu entfernen:

bx cr image-list (listet die Images in der Registry auf)
bx cr image-rm Image-Name (entfernt das Image aus der Registry)

Datenbankservicekonfiguration aus IBM Cloud entfernen

Wenn Sie während der Konfiguration des MobileFirst-Application-Center-Image das Script prepareappcenterdbs.sh ausgeführt haben, werden die für das MobileFirst Application Center erforderlichen Konfigurationen und Datenbanktabellen erstellt. Das Script erstellt auch das Datenbankschema für den Container.

Sie können die Datenbankservicekonfiguration im IBM Cloud-Dashboard wie folgt entfernen.

  1. Wählen Sie im IBM Cloud-Dashboard den von Ihnen verwendeten Service Db2 on Cloud aus. Wählen Sie den Db2-Servicenamen aus, den Sie für die Ausführung des Scripts prepareappcenterdbs.sh als Parameter angegeben haben.
  2. Starten Sie die Db2-Konsole, um mit den Schemata und Datenbankobjekten der ausgewählten Db2-Serviceinstanz arbeiten zu können.
  3. Wählen Sie Schemata für die Konfiguration von IBM MobileFirst Server aus. Die Schemanamen sind die, die Sie bei Ausführung des Scripts prepareappcenterdbs.sh als Parameter angegeben haben.
  4. Untersuchen Sie die Schemanamen und die zugehörigen Objekte gründlich, bevor Sie die einzelnen Schemata löschen. Die Datenbankkonfigurationen wurden aus IBM Cloud entfernt.
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020