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
- Besuchen Sie die Seite "Kubernetes Install Tools", um den CLI-Client "
kubectlfür Ihr Betriebssystem zu installieren.
- Besuchen Sie die Seite "Kubernetes Install Tools", um den 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.