Comprendere la portabilità dei dati per Code Engine
La portabilità dei dati comporta una serie di comandi che consentono ai clienti di esportare gli artefatti digitali necessari per implementare carichi di lavoro ed elaborazioni di dati simili su diversi fornitori di servizi o software on-premise. Include i comandi per esportare il contenuto del cliente del servizio, compresa la relativa configurazione utilizzata dal servizio per memorizzare ed elaborare i dati, nella sede del cliente stesso.
Responsabilità
i servizi IBM Cloud forniscono interfacce e istruzioni che guidano il cliente a copiare e memorizzare il contenuto del cliente del servizio, compresa la relativa configurazione, sulla propria postazione selezionata.
Il cliente è responsabile dell'utilizzo dei dati esportati e della configurazione per la portabilità dei dati su altre infrastrutture, che comprende:
- La pianificazione e l'esecuzione per la creazione di infrastrutture alternative su diversi fornitori di cloud o software on-premise che forniscono funzionalità simili ai servizi IBM.
- La pianificazione e l'esecuzione del porting del codice applicativo richiesto sull'infrastruttura alternativa, compreso l'adattamento del codice applicativo del cliente, l'automazione della distribuzione e così via.
- La conversione dei dati e della configurazione esportati nel formato richiesto dall'infrastruttura alternativa e dalle applicazioni adattate.
Per ulteriori informazioni sulle responsabilità dell'utente per Code Engine, vedere Comprendere le proprie responsabilità nell'uso di Code Engine.
Procedure di esportazione dei dati
Code Engine fornisce meccanismi per costruire immagini di contenitori dal codice sorgente. Il codice sorgente può essere memorizzato localmente o su Github. Code Engine non fornisce comandi o strumenti per scaricare tali immagini di contenitori. I clienti devono invece scaricare e archiviare tali immagini seguendo le procedure di esportazione dei dati per IBM Cloud Container Registry.
Code Engine fornisce meccanismi per esportare le impostazioni e le configurazioni utilizzate per elaborare i contenuti del cliente.
I dati di configurazione per le seguenti entità Code Engine possono essere esportati usando i comandi specificati più avanti in questa sezione:
- Progetti
- Applicazioni
- Revisioni dell'applicazione
- Build
- Esecuzioni build
- Mappe di configurazione
- Segreti
- Associazioni dominio
- Sottoscrizioni agli eventiIBM Cloud Object Storage, '
cron, e Kafka) - Funzioni
- Lavori
- Esecuzioni del lavoro
Strumenti necessari per l'esportazione dei dati
Per esportare i dati di Code Engine, è necessario scaricare e installare i seguenti strumenti a riga di comando:
- Il client IBM Cloud Client CLI
- Visitare il sito IBM Cloud Per installare il client CLI per il proprio sistema operativo.
- Il plug-in Code Engine Plug-in CLI
- Visitare la pagina Code Engine Che contiene istruzioni su come installare il plug-in Code Engine per il IBM Cloud CLI.
- Il client CLI Kubernetes
- Visitare il sito 'Kubernetes Pagina degli strumenti di installazione per installare il client CLI '
kubectlper il proprio sistema operativo.
- Visitare il sito 'Kubernetes Pagina degli strumenti di installazione per installare il client CLI '
Esportazione della configurazione " project
Un progetto in Code Engine è un contenitore di configurazioni e carichi di lavoro correlati. Se si desidera esportare un progetto, utilizzare i seguenti comandi 'ibmcloud resource:
Per elencare tutti i progetti Code Engine utilizzare:
ibmcloud resource service-instances --service-name codeengine
Per elencare tutti i progetti Code Engine in una regione specifica, utilizzare:
ibmcloud resource service-instances --service-name codeengine --location us-south
Una volta identificato il progetto Code Engine che si desidera esportare, utilizzarlo:
ibmcloud resource service-instance <project-name> -o json >project-name.json
L'esportazione di un progetto Code Engine esporta solo la configurazione dell'entità del progetto stesso. Le entità di configurazione e le entità del carico di lavoro contenute devono essere esportate separatamente.
Esportazione di un 'KUBECONFIG per esportare le entità del progetto
Una volta identificato il progetto che si desidera esportare, è necessario esportare una variabile d'ambiente 'KUBECONFIG per applicare i comandi 'kubectl descritti in questo documento a quel progetto.
Per ottenere la variabile d'ambiente " KUBECONFIG, eseguire i seguenti comandi
ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current
In questo modo si seleziona il progetto e si stampa una dichiarazione simile alla seguente:
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"
Copiate la dichiarazione 'export KUBECONFIG=xxx nel prompt del terminale ed eseguitela. Tutti i seguenti comandi di 'kubectl sono ora assegnati a questo progetto.
Esportazione della configurazione " application
Per esportare la configurazione di tutte le applicazioni del progetto, eseguire il seguente comando 'kubectl:
kubectl get service -o json >project-name_application-configurations.json
Se si desidera esportare la configurazione di una singola applicazione, utilizzare il seguente comando 'kubectl:
kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json
Esportazione della configurazione " application revision
Per esportare la configurazione di tutte le revisioni dell'applicazione nel progetto, eseguire il seguente comando 'kubectl:
kubectl get revision -o json >project-name_application-revisions.json
Se si desidera esportare la configurazione di una singola revisione dell'applicazione, utilizzare il seguente comando 'kubectl:
kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json
Esportazione della configurazione " build
Per esportare la configurazione di tutte le build del progetto, eseguire il seguente comando 'kubectl:
kubectl get build -o json >project-name_build-configurations.json
Se si vuole esportare la configurazione di una singola build, usare il seguente comando 'kubectl:
kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json
Esportazione della configurazione " build run
Per esportare la configurazione di tutte le esecuzioni del progetto, eseguire il seguente comando kubectl:
kubectl get buildrun -o json >project-name_buildrun-configurations.json
Se si vuole esportare la configurazione di una singola buildrun, usare il seguente comando 'kubectl:
kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json
Esportazione della configurazione " configmap
Per esportare il contenuto di tutti i configmap del progetto, eseguire il seguente comando 'kubectl:
kubectl get configmap -o json >project-name_configmaps.json
Se si desidera esportare il contenuto di una singola mappa di configurazione, utilizzare il seguente comando 'kubectl:
kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json
Esportazione della configurazione " secret
Non esportare il contenuto dei segreti in un file su una memoria persistente.
Per esportare il contenuto di tutti i segreti del progetto, eseguire il seguente comando 'kubectl:
kubectl get secret -o json >project-name_secrets.json
Se si desidera esportare il contenuto di un singolo segreto, utilizzare il seguente comando 'kubectl:
kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json
I valori memorizzati nei segreti di Code Engine sono solitamente copie di valori gestiti in altri sistemi, come IBM Cloud Secrets Manager. Pertanto, nella maggior parte dei casi l'esportazione dei segreti non è necessaria. Se è ancora necessario esportare i segreti da Code Engine, si dovrebbe scegliere di esportare singoli segreti piuttosto che tutti i segreti per evitare la divulgazione involontaria di informazioni sensibili.
Esportazione della configurazione " domain mapping
Per esportare la configurazione di tutte le mappature di dominio del progetto, eseguire il seguente comando 'kubectl:
kubectl get domainmapping -o json >project-name_domainmappings.json
Se si desidera esportare la configurazione di una singola mappatura di dominio, utilizzare il seguente comando 'kubectl:
kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json
Esportazione della configurazione " IBM Cloud Object Storage event subscription
Per esportare la configurazione di tutte le sottoscrizioni agli eventi IBM Cloud Object Storage del progetto, eseguire il seguente comando 'kubectl:
kubectl get cossource -o json >project-name_cos-event-subscriptions.json
Se si desidera esportare la configurazione di una singola sottoscrizione a un evento IBM Cloud Object Storage, utilizzare il seguente comando 'kubectl:
kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json
Esportazione della configurazione " cron event subscription
Per esportare la configurazione di tutte le sottoscrizioni di eventi 'cron nel progetto, eseguire il seguente comando 'kubectl:
kubectl get pingsource -o json >project-name_cron-event-subscriptions.json
Se si desidera esportare la configurazione di una singola sottoscrizione di eventi 'cron, utilizzare il seguente comando 'kubectl:
kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json
Esportazione della configurazione " Kafka event subscription
Per esportare la configurazione di tutte le sottoscrizioni di eventi Kafka nel progetto, eseguire il seguente comando 'kubectl:
kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json
Se si desidera esportare la configurazione di una singola sottoscrizione di eventi Kafka, utilizzare il seguente comando 'kubectl:
kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json
Esportazione della configurazione " function
Per esportare la configurazione di tutte le funzioni del progetto, eseguire il seguente comando 'kubectl:
kubectl get function -o json >project-name_functions.json
Se si desidera esportare la configurazione di una singola funzione, utilizzare il seguente comando 'kubectl:
kubectl get function <function-name> -o json >project-name-function-name_function.json
Esportazione della configurazione " job
Per esportare la configurazione di tutti i lavori del progetto, eseguire il seguente comando 'kubectl:
kubectl get jobdefinition -o json >project-name_jobs.json
Se si desidera esportare la configurazione di un singolo lavoro, utilizzare il seguente comando 'kubectl:
kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json
Esportazione della configurazione " job run
Per esportare la configurazione di tutte le jobrun nel progetto, eseguire il seguente comando 'kubectl:
kubectl get jobrun -o json >project-name_jobruns.json
Se si desidera esportare la configurazione di una singola sessione di lavoro, utilizzare il seguente comando 'kubectl:
kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json
Formati dei dati esportati
Code Engine supporta il seguente formato e schema dei dati, della configurazione e dell'applicazione esportati:
- JSON
Esempio: L'esportazione di una ConfigMap con nome 'export-sample e formato 'JSON produce il seguente output JSON:
Command:
kubectl get configmap export-sample -o json
Output:
{
"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"
}
}
Tutti i comandi che utilizzano il comando 'kubectl con l'opzione '-o json producono un output JSON compatibile con Kubernetes. Il JSON prodotto da altri comandi, come 'ibmcloud resource o 'ibmcloud code-engine non può essere considerato compatibile con Kubernetes così com'è.
Code Engine non supporta l'esportazione dei seguenti formati e schemi di dati, configurazione e applicazione esportati:
- YAML
Proprietà dei dati
Tutti i dati esportati sono classificati come contenuti del cliente. Applicare i diritti di proprietà e di licenza del cliente, come indicato nel IBM Cloud Contratto di servizio.