Verständnis der Datenübertragbarkeit für Code Engine

Die Datenportabilität umfasst eine Reihe von Befehlen, die es den Kunden ermöglichen, die digitalen Artefakte zu exportieren, die für die Implementierung ähnlicher Arbeitslasten und Datenverarbeitungen bei verschiedenen Dienstanbietern oder vor Ort installierter Software erforderlich sind. Sie enthält Befehle für den Export des Kundeninhalts des Dienstes, einschließlich der zugehörigen Konfiguration, die vom Dienst zur Speicherung und Verarbeitung der Daten verwendet wird, an den Standort des Kunden selbst.

Verantwortlichkeiten

{{{site.data.keyword.cloud_notm}} Dienste bieten Schnittstellen und Anleitungen, um den Kunden anzuleiten, den Inhalt des Dienstes einschließlich der zugehörigen Konfiguration zu kopieren und an dem von ihm gewählten Ort zu speichern.

Der Kunde ist für die Verwendung der exportierten Daten und der Konfiguration für die Datenübertragbarkeit auf andere Infrastrukturen verantwortlich, wozu auch die Nutzung der Daten gehört:

  • Planung und Ausführung der Einrichtung alternativer Infrastrukturen bei verschiedenen Cloud-Anbietern oder lokaler Software, die ähnliche Funktionen wie die IBM bieten.
  • Die Planung und Durchführung der Portierung des erforderlichen Anwendungscodes auf die alternative Infrastruktur, einschließlich der Anpassung des Anwendungscodes des Kunden, der Automatisierung der Bereitstellung usw.
  • Die Konvertierung der exportierten Daten und der Konfiguration in das Format, das für die alternative Infrastruktur und die angepassten Anwendungen erforderlich ist.

Weitere Informationen über Ihre Verantwortlichkeiten für Code Engine finden Sie unter Verstehen Ihrer Verantwortlichkeiten bei der Verwendung von Code Engine.

Verfahren für den Datenexport

Code Engine bietet Mechanismen zur Erstellung von Container-Images aus Quellcode. Der Quellcode kann entweder lokal oder auf Github gespeichert werden. Code Engine bietet keine Befehle oder Werkzeuge zum Herunterladen solcher Container-Images. Stattdessen müssen die Kunden diese Bilder gemäß den Datenexportverfahren für IBM Cloud Container Registry herunterladen und speichern.

{Die Funktion Code Engine bietet Mechanismen für den Export von Einstellungen und Konfigurationen, die für die Verarbeitung der Inhalte des Kunden verwendet werden.

Konfigurationsdaten für die folgenden Code Engine Entitäten können mit den später in diesem Abschnitt aufgeführten Befehlen exportiert werden:

  • Projekte
  • Anwendungen
  • Anwendungsrevisionen
  • Builds
  • Buildausführungen
  • Konfigurationszuordnungen
  • Geheime Schlüssel
  • Domänenzuordnungen
  • EreignisabonnementsIBM Cloud Object Storage, ' cron, und Kafka)
  • Funktionen
  • Jobs
  • Jobausführungen

Für den Datenexport erforderliche Werkzeuge

Für den Export von Code Engine Daten müssen Sie die folgenden Befehlszeilentools herunterladen und installieren:

  • Der IBM Cloud CLI-Client
    • Besuchen Sie die IBM Cloud CLI-Einstiegsseite, um den CLI-Client für Ihr Betriebssystem zu installieren.
  • Das Code Engine CLI-Plugin
    • Besuchen Sie die Code Engine CLI-Seite mit Anweisungen zur Installation des Code Engine für das IBM Cloud CLI.
  • Der Kubernetes CLI-Client

Exportieren der ' project onfiguration

Ein Projekt in Code Engine ist ein Container mit verwandten Konfigurationen und Workloads. Wenn Sie ein Projekt exportieren möchten, verwenden Sie die folgenden ' ibmcloud resource-Befehle:

Um alle Code Engine Projekte aufzulisten, verwenden Sie:

ibmcloud resource service-instances --service-name codeengine

Um alle Code Engine Projekte in einer bestimmten Region aufzulisten, verwenden Sie:

ibmcloud resource service-instances --service-name codeengine --location us-south

Wenn Sie das Code Engine Projekt, das Sie exportieren möchten, identifiziert haben, verwenden Sie es:

ibmcloud resource service-instance <project-name> -o json >project-name.json

Beim Exportieren eines Code Engine Projekts wird nur die Konfiguration der Projektentität selbst exportiert. Enthaltene Konfigurationsentitäten und Workload-Entitäten müssen separat exportiert werden.

Exportieren eines ' KUBECONFIG zum Exportieren von Projekteinheiten

Wenn Sie ein Projekt identifiziert haben, das Sie exportieren möchten, müssen Sie eine Umgebungsvariable " KUBECONFIG exportieren, um die in diesem Dokument beschriebenen " kubectl-Befehle auf dieses Projekt anzuwenden.

Um diese Umgebungsvariable " KUBECONFIG zu erhalten, führen Sie folgende Befehle aus

ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current

Damit wird das Projekt ausgewählt und eine Anweisung ähnlich der folgenden ausgegeben:

Getting the current project context...
OK

Name:       <project-name>
ID:         123a4cbc-567d-8e90-1f2b-032d33d931ba
Subdomain:  1abc2defi34
Domain:     us-south.codeengine.appdomain.cloud
Region:     us-south

Kubernetes Config:
Context:               1abc2defi34
Environment Variable:  export KUBECONFIG="/Users/<username>/.bluemix/plugins/code-engine/<project-name>-123a4cbc-567d-8e90-1f2b-032d33d931ba.yaml"

Kopieren Sie die Anweisung " export KUBECONFIG=xxx in die Eingabeaufforderung Ihres Terminals und führen Sie sie aus. Alle folgenden ' kubectl-Befehle sind nun auf dieses Projekt beschränkt.

Exportieren der ' application onfiguration

Um die Konfiguration aller Anwendungen in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get service -o json >project-name_application-configurations.json

Wenn Sie die Konfiguration einer einzelnen Anwendung exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json

Exportieren der ' application revision onfiguration

Um die Konfiguration aller Anwendungsrevisionen in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get revision -o json >project-name_application-revisions.json

Wenn Sie die Konfiguration einer einzelnen Anwendungsrevision exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json

Exportieren der ' build onfiguration

Um die Konfiguration aller Builds in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get build -o json >project-name_build-configurations.json

Wenn Sie die Konfiguration eines einzelnen Builds exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json

Exportieren der ' build run onfiguration

Um die Konfiguration aller Build-Läufe in Ihrem Projekt zu exportieren, führen Sie den folgenden Befehl kubectl aus:

kubectl get buildrun -o json >project-name_buildrun-configurations.json

Wenn Sie die Konfiguration eines einzelnen Buildruns exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json

Exportieren der ' configmap onfiguration

Um den Inhalt aller configmaps in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get configmap -o json >project-name_configmaps.json

Wenn Sie den Inhalt einer einzelnen configmap exportieren wollen, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json

Exportieren der ' secret onfiguration

Exportieren Sie den Inhalt von Geheimnissen nicht in eine Datei auf einem dauerhaften Speicher.

Um den Inhalt aller Geheimnisse in Ihrem Projekt zu exportieren, führen Sie den folgenden " kubectl-Befehl aus:

kubectl get secret -o json >project-name_secrets.json

Wenn Sie den Inhalt eines einzelnen Geheimnisses exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json

Die in Code Engine gespeicherten Werte sind in der Regel Kopien von Werten, die in anderen Systemen wie IBM Cloud Secrets Manager verwaltet werden. Daher ist es in den meisten Fällen nicht erforderlich, Geheimnisse zu exportieren. Wenn Sie dennoch Geheimnisse von Code Engine exportieren müssen, sollten Sie den Export einzelner Geheimnisse dem Export aller Geheimnisse vorziehen, um eine unbeabsichtigte Offenlegung sensibler Informationen zu vermeiden.

Exportieren der ' domain mapping onfiguration

Um die Konfiguration aller Domänenzuordnungen in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get domainmapping -o json >project-name_domainmappings.json

Wenn Sie die Konfiguration einer einzelnen Domänenzuordnung exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json

Exportieren der ' IBM Cloud Object Storage event subscription onfiguration

Um die Konfiguration aller IBM Cloud Object Storage Ereignisabonnements in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get cossource -o json >project-name_cos-event-subscriptions.json

Wenn Sie die Konfiguration eines einzelnen IBM Cloud Object Storage Ereignisabonnements exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json

Exportieren der ' cron event subscription onfiguration

Um die Konfiguration aller " cron in Ihrem Projekt zu exportieren, führen Sie den folgenden " kubectl-Befehl aus:

kubectl get pingsource -o json >project-name_cron-event-subscriptions.json

Wenn Sie die Konfiguration eines einzelnen " cron exportieren möchten, verwenden Sie den folgenden " kubectl-Befehl:

kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json

Exportieren der ' Kafka event subscription onfiguration

Um die Konfiguration aller Kafka in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json

Wenn Sie die Konfiguration eines einzelnen Kafka exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json

Exportieren der ' function onfiguration

Um die Konfiguration aller Funktionen in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get function -o json >project-name_functions.json

Wenn Sie die Konfiguration einer einzelnen Funktion exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get function <function-name> -o json >project-name-function-name_function.json

Exportieren der ' job onfiguration

Um die Konfiguration aller Aufträge in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get jobdefinition -o json >project-name_jobs.json

Wenn Sie die Konfiguration eines einzelnen Auftrags exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json

Exportieren der ' job run onfiguration

Um die Konfiguration aller Jobruns in Ihrem Projekt zu exportieren, führen Sie den folgenden ' kubectl-Befehl aus:

kubectl get jobrun -o json >project-name_jobruns.json

Wenn Sie die Konfiguration eines einzelnen Joblaufs exportieren möchten, verwenden Sie den folgenden ' kubectl-Befehl:

kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json

Exportierte Datenformate

Code Engine unterstützt das folgende Datenformat und Schema der exportierten Daten, Konfiguration und Anwendung:

  • JSON

Beispiel: Der Export einer ConfigMap mit dem Namen " export-sample und dem Format " JSON ergibt die folgende JSON-Ausgabe:

Befehl: kubectl get configmap export-sample -o json

Ausgabe:

{
    "apiVersion": "v1",
    "data": {
        "APP_OWNER": "John Doe",
        "NUM_DATASETS": "24",
        "foo": "bar"
    },
    "kind": "ConfigMap",
    "metadata": {
        "creationTimestamp": "2024-10-15T09:12:47Z",
        "name": "export-sample",
        "namespace": "7yuw2furi55",
        "resourceVersion": "9162003517",
        "uid": "12962640-a294-4e1f-a006-a875f119df43"
    }
}

Alle Befehle, die den Befehl " kubectl mit der Option " -o json verwenden, erzeugen eine JSON-Ausgabe, die mit Kubernetes kompatibel ist. Es kann nicht davon ausgegangen werden, dass das von anderen Befehlen wie " ibmcloud resource oder " ibmcloud code-engine erzeugte JSON unverändert mit Kubernetes kompatibel ist.

Code Engine unterstützt nicht den Export des folgenden Datenformats und Schemas der exportierten Daten, Konfiguration und Anwendung:

  • YAML

Datenverantwortung

Alle exportierten Daten werden als Kundeninhalte eingestuft. Anwendung der vollständigen Eigentums- und Lizenzrechte des Kunden, wie sie in der IBM Cloud Dienstvereinbarung.