Entendendo a portabilidade de dados para Code Engine
A portabilidade de dados envolve um conjunto de comandos que permite aos clientes exportar os artefatos digitais necessários para implementar cargas de trabalho e processamento de dados semelhantes em diferentes provedores de serviços ou softwares locais. Inclui comandos para exportar o conteúdo do cliente do serviço, incluindo a configuração relacionada que é usada pelo serviço para armazenar e processar os dados, no próprio local do cliente.
Responsabilidades
os serviços IBM Cloud fornecem interfaces e instruções para orientar o cliente a copiar e armazenar o conteúdo do cliente do serviço, incluindo a configuração relacionada, em seu próprio local selecionado.
O cliente é responsável pelo uso dos dados exportados e pela configuração da portabilidade de dados para outras infraestruturas, o que inclui:
- O planejamento e a execução para configurar uma infraestrutura alternativa em diferentes provedores de nuvem ou software local que forneça recursos semelhantes aos serviços IBM.
- O planejamento e a execução da portabilidade do código do aplicativo necessário na infraestrutura alternativa, incluindo a adaptação do código do aplicativo do cliente, a automação da implantação e assim por diante.
- A conversão dos dados e da configuração exportados para o formato exigido pela infraestrutura alternativa e pelos aplicativos adaptados.
Para obter mais informações sobre suas responsabilidades em relação ao Code Engine, consulte Entendendo suas responsabilidades ao usar o Code Engine.
Procedimentos de exportação de dados
Code Engine fornece mecanismos para criar imagens de contêineres a partir do código-fonte. O código-fonte pode ser armazenado localmente ou no Github. Code Engine não fornece comandos ou ferramentas para baixar essas imagens de contêiner. Em vez disso, os clientes precisam fazer download e armazenar essas imagens seguindo os procedimentos de exportação de dados para IBM Cloud Container Registry.
Code Engine fornece mecanismos para exportar definições e configurações que são usadas para processar o conteúdo do cliente.
Os dados de configuração das seguintes entidades Code Engine podem ser exportados usando os comandos especificados posteriormente nesta seção:
- Projetos
- Aplicativos
- Revisões de aplicativos
- Compilações
- Execuções de compilação
- Configmaps
- Segredos
- Mapeamentos de domínio
- Assinaturas de eventosIBM Cloud Object Storage, '
crone Kafka) - Funções
- Tarefas
- Execuções de tarefas
Ferramentas necessárias para exportar dados
Para exportar os dados do Code Engine, você precisa fazer o download e instalar as seguintes ferramentas de linha de comando:
- O IBM Cloud Cliente CLI
- Visite o CLI ' IBM Cloud ' Página de introdução para instalar o cliente CLI para seu sistema operacional.
- O Code Engine Plug-in da CLI
- Visite a página Code Engine Que contém instruções sobre como instalar o plug-in Code Engine para a IBM Cloud CLI.
- O cliente CLI Kubernetes
- Visite a página Ferramentas de instalaçãoKubernetes para instalar o cliente CLI "
kubectlpara seu sistema operacional.
- Visite a página Ferramentas de instalaçãoKubernetes para instalar o cliente CLI "
Exportação da configuração " project
Um projeto em Code Engine é um contêiner de configurações e cargas de trabalho relacionadas. Se você quiser exportar um projeto, use os seguintes comandos ' ibmcloud resource:
Para listar todos os projetos Code Engine, use:
ibmcloud resource service-instances --service-name codeengine
Para listar todos os projetos Code Engine em uma região específica, use:
ibmcloud resource service-instances --service-name codeengine --location us-south
Quando você tiver identificado o projeto Code Engine que deseja exportar, use-o:
ibmcloud resource service-instance <project-name> -o json >project-name.json
A exportação de um projeto Code Engine exporta apenas a configuração da própria entidade do projeto. As entidades de configuração contidas e as entidades de carga de trabalho precisam ser exportadas separadamente.
Exportação de um " KUBECONFIG para exportar entidades do projeto
Depois de identificar um projeto que deseja exportar, é necessário exportar uma variável de ambiente ' KUBECONFIG para que os comandos ' kubectl descritos neste documento sejam aplicados a esse projeto.
Para obter essa variável de ambiente " KUBECONFIG, execute os seguintes comandos
ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current
Isso seleciona o projeto e imprime uma declaração semelhante à seguinte:
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"
Copie a instrução ' export KUBECONFIG=xxx para o prompt do terminal e execute-a. Todos os comandos " kubectl a seguir têm agora o escopo desse projeto.
Exportação da configuração " application
Para exportar a configuração de todos os aplicativos em seu projeto, execute o seguinte comando ' kubectl:
kubectl get service -o json >project-name_application-configurations.json
Se você quiser exportar a configuração de um único aplicativo, use o seguinte comando ' kubectl:
kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json
Exportação da configuração " application revision
Para exportar a configuração de todas as revisões de aplicativos em seu projeto, execute o seguinte comando ' kubectl:
kubectl get revision -o json >project-name_application-revisions.json
Se você quiser exportar a configuração de uma única revisão de aplicativo, use o seguinte comando ' kubectl:
kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json
Exportação da configuração " build
Para exportar a configuração de todas as compilações em seu projeto, execute o seguinte comando ' kubectl:
kubectl get build -o json >project-name_build-configurations.json
Se você quiser exportar a configuração de uma única compilação, use o seguinte comando ' kubectl:
kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json
Exportação da configuração " build run
Para exportar a configuração de todas as execuções de compilação em seu projeto, execute o seguinte comando kubectl:
kubectl get buildrun -o json >project-name_buildrun-configurations.json
Se você quiser exportar a configuração de um único buildrun, use o seguinte comando ' kubectl:
kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json
Exportação da configuração " configmap
Para exportar o conteúdo de todos os configmaps em seu projeto, execute o seguinte comando ' kubectl:
kubectl get configmap -o json >project-name_configmaps.json
Se você quiser exportar o conteúdo de um único configmap, use o seguinte comando ' kubectl:
kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json
Exportação da configuração " secret
Não exporte o conteúdo dos segredos para um arquivo em um armazenamento persistente.
Para exportar o conteúdo de todos os segredos em seu projeto, execute o seguinte comando ' kubectl:
kubectl get secret -o json >project-name_secrets.json
Se você quiser exportar o conteúdo de um único segredo, use o seguinte comando ' kubectl:
kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json
Os valores armazenados nos segredos de Code Engine geralmente são cópias de valores gerenciados em outros sistemas, como IBM Cloud Secrets Manager. Portanto, na maioria das vezes, não é necessário exportar segredos. Se você ainda precisar exportar segredos do site Code Engine, deverá escolher exportar segredos individuais em vez de exportar todos os segredos para evitar a divulgação não intencional de informações confidenciais.
Exportação da configuração " domain mapping
Para exportar a configuração de todos os mapeamentos de domínio em seu projeto, execute o seguinte comando ' kubectl:
kubectl get domainmapping -o json >project-name_domainmappings.json
Se você quiser exportar a configuração de um único mapeamento de domínio, use o seguinte comando ' kubectl:
kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json
Exportação da configuração " IBM Cloud Object Storage event subscription
Para exportar a configuração de todas as assinaturas de eventos IBM Cloud Object Storage em seu projeto, execute o seguinte comando ' kubectl:
kubectl get cossource -o json >project-name_cos-event-subscriptions.json
Se você quiser exportar a configuração de uma única assinatura de evento IBM Cloud Object Storage, use o seguinte comando ' kubectl:
kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json
Exportação da configuração " cron event subscription
Para exportar a configuração de todas as assinaturas de eventos " cron em seu projeto, execute o seguinte comando " kubectl:
kubectl get pingsource -o json >project-name_cron-event-subscriptions.json
Se você quiser exportar a configuração de uma única assinatura de evento " cron, use o seguinte comando " kubectl:
kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json
Exportação da configuração " Kafka event subscription
Para exportar a configuração de todas as assinaturas de eventos do Kafka em seu projeto, execute o seguinte comando " kubectl:
kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json
Se você quiser exportar a configuração de uma única assinatura de evento Kafka, use o seguinte comando " kubectl:
kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json
Exportação da configuração " function
Para exportar a configuração de todas as funções em seu projeto, execute o seguinte comando ' kubectl:
kubectl get function -o json >project-name_functions.json
Se você quiser exportar a configuração de uma única função, use o seguinte comando ' kubectl:
kubectl get function <function-name> -o json >project-name-function-name_function.json
Exportação da configuração " job
Para exportar a configuração de todos os trabalhos em seu projeto, execute o seguinte comando " kubectl:
kubectl get jobdefinition -o json >project-name_jobs.json
Se você quiser exportar a configuração de um único trabalho, use o seguinte comando ' kubectl:
kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json
Exportação da configuração " job run
Para exportar a configuração de todos os jobruns em seu projeto, execute o seguinte comando ' kubectl:
kubectl get jobrun -o json >project-name_jobruns.json
Se você quiser exportar a configuração de um único jobrun, use o seguinte comando ' kubectl:
kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json
Formatos de dados exportados
Code Engine suporta o seguinte formato de dados e esquema dos dados, da configuração e do aplicativo exportados:
- JSON
Exemplo: A exportação de um ConfigMap com o nome " export-sample e o formato " JSON resulta na seguinte saída JSON:
Comando:
kubectl get configmap export-sample -o json
Saída:
{
"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 os comandos que usam o comando " kubectl com a opção " -o json produzem uma saída JSON compatível com o Kubernetes. Não se pode presumir que o JSON produzido por outros comandos, como " ibmcloud resource ou " ibmcloud code-engine, seja compatível com o Kubernetes como está.
Code Engine não é compatível com a exportação do seguinte formato de dados e esquema dos dados, da configuração e do aplicativo exportados:
- YAML
Propriedade dos dados
Todos os dados exportados são classificados como conteúdo do cliente. Aplicar os direitos totais de propriedade e licenciamento do cliente, conforme declarado no IBM Cloud Contrato de Serviço.