Comprender la portabilidad de datos para Code Engine
La portabilidad de datos implica un conjunto de comandos que permiten a los clientes exportar los artefactos digitales necesarios para implementar una carga de trabajo y un procesamiento de datos similares en diferentes proveedores de servicios o software local. Incluye comandos para exportar el contenido del cliente del servicio, incluida la configuración relacionada que utiliza el servicio para almacenar y procesar los datos, en la propia ubicación del cliente.
Responsabilidades
los servicios IBM Cloud proporcionan interfaces e instrucciones para guiar al cliente a copiar y almacenar el contenido del cliente del servicio, incluida la configuración relacionada, en su propia ubicación seleccionada.
El cliente es responsable del uso de los datos exportados y de la configuración para la portabilidad de datos a otras infraestructuras, lo que incluye:
- La planificación y ejecución para configurar infraestructuras alternativas en diferentes proveedores de nube o software local que proporcionen capacidades similares a los servicios IBM.
- La planificación y ejecución de la migración del código de aplicación necesario a la infraestructura alternativa, incluida la adaptación del código de aplicación del cliente, la automatización del despliegue, etc.
- La conversión de los datos y la configuración exportados al formato requerido por la infraestructura alternativa y las aplicaciones adaptadas.
Para más información sobre sus responsabilidades para " Code Engine, consulte " Responsabilidades al utilizar " Code Engine.
Procedimientos de exportación de datos
Code Engine proporciona mecanismos para construir imágenes de contenedores a partir del código fuente. El código fuente puede almacenarse localmente o en Github. Code Engine no proporciona comandos o herramientas para descargar dichas imágenes contenedoras. En su lugar, los clientes deben descargar y almacenar esas imágenes siguiendo los procedimientos de exportación de datos para IBM Cloud Container Registry.
Code Engine proporciona mecanismos para exportar ajustes y configuraciones que se utilizan para procesar el contenido del cliente.
Los datos de configuración de las siguientes entidades Code Engine pueden exportarse utilizando los comandos especificados más adelante en esta sección:
- Proyectos
- Aplicaciones
- Revisiones de aplicaciones
- Compilaciones
- Ejecuciones de compilación
- Mapas de configuración
- Secretos
- Correlaciones de dominios
- Suscripciones a eventosIBM Cloud Object Storage, '
cron, y Kafka) - Funciones
- Trabajos
- Ejecuciones de trabajos
Herramientas necesarias para exportar datos
Para exportar los datos de Code Engine, debe descargar e instalar las siguientes herramientas de comando :
- El IBM Cloud Cliente CLI
- Visite la IBM Cloud CLI Getting started page para instalar el cliente CLI para su sistema operativo.
- El Code Engine CLI plug-in
- Visita la página Code Engine CLI página que tiene instrucciones sobre cómo instalar el Code Engine plug-in para el IBM Cloud CLI.
- El cliente CLI Kubernetes
- Visite la página de herramientas de instalación deKubernetes para instalar el cliente CLI '
kubectl' para su sistema operativo.
- Visite la página de herramientas de instalación deKubernetes para instalar el cliente CLI '
Exportación de la configuración de ' project
Un proyecto en Code Engine es un contenedor de configuraciones y cargas de trabajo relacionadas. Si desea exportar un proyecto, utilice los siguientes comandos ' ibmcloud resource ':
Para listar todos los proyectos Code Engine utilice:
ibmcloud resource service-instances --service-name codeengine
Para obtener una lista de todos los proyectos Code Engine en una región específica, utilice:
ibmcloud resource service-instances --service-name codeengine --location us-south
Cuando haya identificado el proyecto Code Engine que desea exportar, utilícelo:
ibmcloud resource service-instance <project-name> -o json >project-name.json
La exportación de un proyecto Code Engine sólo exporta la configuración de la propia entidad del proyecto. Las entidades de configuración contenidas y las entidades de carga de trabajo deben exportarse por separado.
Exportar un " KUBECONFIG " para exportar entidades de proyecto
Cuando hayas identificado un proyecto que quieras exportar, tienes que exportar una variable de entorno ' KUBECONFIG ' para que los comandos ' kubectl ' descritos en este documento se apliquen a ese proyecto.
Para obtener esta variable de entorno " KUBECONFIG ", ejecute los siguientes comandos
ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current
Esto selecciona el proyecto e imprime una sentencia similar a la siguiente:
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"
Copia la sentencia ' export KUBECONFIG=xxx ' en tu terminal y ejecútala. Todos los siguientes comandos ' kubectl ' están ahora asignados a este proyecto.
Exportación de la configuración de ' application
Para exportar la configuración de todas las aplicaciones de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get service -o json >project-name_application-configurations.json
Si desea exportar la configuración de una sola aplicación, utilice el siguiente comando ' kubectl ':
kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json
Exportación de la configuración de ' application revision
Para exportar la configuración de todas las revisiones de la aplicación en su proyecto, ejecute el siguiente comando ' kubectl ':
kubectl get revision -o json >project-name_application-revisions.json
Si desea exportar la configuración de una única revisión de la aplicación, utilice el siguiente comando ' kubectl ':
kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json
Exportación de la configuración de ' build
Para exportar la configuración de todas las compilaciones de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get build -o json >project-name_build-configurations.json
Si desea exportar la configuración de una única compilación, utilice el siguiente comando ' kubectl ':
kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json
Exportación de la configuración de ' build run
Para exportar la configuración de todas las ejecuciones de compilación de su proyecto, ejecute el siguiente comando kubectl:
kubectl get buildrun -o json >project-name_buildrun-configurations.json
Si desea exportar la configuración de un único buildrun, utilice el siguiente comando ' kubectl ':
kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json
Exportación de la configuración de ' configmap
Para exportar el contenido de todos los configmaps de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get configmap -o json >project-name_configmaps.json
Si desea exportar el contenido de un único configmap, utilice el siguiente comando ' kubectl ':
kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json
Exportación de la configuración de ' secret
No exporte el contenido de los secretos a un archivo en un almacenamiento persistente.
Para exportar el contenido de todos los secretos de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get secret -o json >project-name_secrets.json
Si desea exportar el contenido de un único secreto, utilice el siguiente comando " kubectl ":
kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json
Los valores almacenados en Code Engine secrets suelen ser copias de valores gestionados en otros sistemas, como IBM Cloud Secrets Manager. Por lo tanto, la mayoría de las veces no es necesario exportar secretos. Si aún así necesita exportar secretos de Code Engine, debe elegir exportar secretos individuales en lugar de exportar todos los secretos para evitar la divulgación involuntaria de información confidencial.
Exportación de la configuración de ' domain mapping
Para exportar la configuración de todos los mapeos de dominio de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get domainmapping -o json >project-name_domainmappings.json
Si desea exportar la configuración de un único mapeo de dominio, utilice el siguiente comando ' kubectl ':
kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json
Exportación de la configuración de ' IBM Cloud Object Storage event subscription
Para exportar la configuración de todas las suscripciones a eventos IBM Cloud Object Storage de su proyecto, ejecute el siguiente comando ' kubectl:
kubectl get cossource -o json >project-name_cos-event-subscriptions.json
Si desea exportar la configuración de una única suscripción a eventos IBM Cloud Object Storage, utilice el siguiente comando ' kubectl:
kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json
Exportación de la configuración de ' cron event subscription
Para exportar la configuración de todas las suscripciones a eventos ' cron ' de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get pingsource -o json >project-name_cron-event-subscriptions.json
Si desea exportar la configuración de una única suscripción de eventos " cron ", utilice el siguiente comando " kubectl ":
kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json
Exportación de la configuración de ' Kafka event subscription
Para exportar la configuración de todas las suscripciones a eventos Kafka de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json
Si desea exportar la configuración de una única suscripción a eventos Kafka, utilice el siguiente comando ' kubectl ':
kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json
Exportación de la configuración de ' function
Para exportar la configuración de todas las funciones de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get function -o json >project-name_functions.json
Si desea exportar la configuración de una única función, utilice el siguiente comando ' kubectl ':
kubectl get function <function-name> -o json >project-name-function-name_function.json
Exportación de la configuración de ' job
Para exportar la configuración de todos los trabajos de tu proyecto, ejecuta el siguiente comando ' kubectl ':
kubectl get jobdefinition -o json >project-name_jobs.json
Si desea exportar la configuración de un único trabajo, utilice el siguiente comando ' kubectl ':
kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json
Exportación de la configuración de ' job run
Para exportar la configuración de todos los jobruns de su proyecto, ejecute el siguiente comando ' kubectl ':
kubectl get jobrun -o json >project-name_jobruns.json
Si desea exportar la configuración de un solo jobrun, utilice el siguiente comando ' kubectl ':
kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json
Formatos de datos exportados
Code Engine admite el siguiente formato de datos y esquema de los datos, la configuración y la aplicación exportados:
- JSON
Ejemplo: Exportar un ConfigMap con nombre ' export-sample y formato ' JSON ' da como resultado la siguiente salida JSON:
Mandato:
kubectl get configmap export-sample -o json
Salida:
{
"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"
}
}
Todos los comandos que utilizan el comando " kubectl " con la opción " -o json " producen una salida JSON compatible con Kubernetes. No se puede asumir que el JSON producido por otros comandos, como
' ibmcloud resource o ' ibmcloud code-engine ' sea compatible con Kubernetes tal cual.
Code Engine no admite la exportación del siguiente formato de datos y esquema de los datos exportados, configuración y aplicación:
- YAML
Propiedad de los datos
Todos los datos exportados se clasifican como contenido del cliente. Aplicar los plenos derechos de propiedad y licencia del cliente, tal y como se establece en el IBM Cloud Contrato de servicio.