Code Engineのデータ移植性を理解する
データポータビリティには、顧客が異なるサービスプロバイダーやオンプレミスのソフトウェアで同様のワークロードやデータ処理を実装するために必要なデジタル成果物をエクスポートできるようにする一連のコマンドが含まれる。 これは、データを保存し処理するためにサービスによって使用される関連設定を含む、サービス顧客のコンテンツを顧客自身の場所にエクスポートするためのコマンドを含んでいます。
責任
IBM Cloudサービスは、顧客が選択した場所に、関連する設定を含むサービス顧客のコンテンツをコピーして保存するよう導くインターフェースと指示を提供する。
お客様は、エクスポートされたデータおよび他のインフラへのデータポータビリティのためのコンフィギュレーションの使用について責任を負います:
- IBMサービスと同様の機能を提供する、別のクラウドプロバイダーまたはオンプレミスソフトウェア上の代替インフラストラクチャをセットアップするための計画と実行。
- 顧客のアプリケーションコードの適合、デプロイの自動化などを含む、代替インフラへの必要なアプリケーションコードの移植の計画と実行。
- エクスポートされたデータとコンフィギュレーションを、代替インフラや適合アプリケーションで必要とされる形式に変換すること。
Code Engineの責任について詳しくは、Code Engineを使用する際の責任を理解する を参照してください。
データエクスポート手順
Code Engineは、ソースコードからコンテナイメージを構築するメカニズムを提供します。 ソースコードはローカルかGithubに保存できる。Code Engineは、そのようなコンテナイメージをダウンロードするコマンドやツールを提供していません。 代わりに、IBM Cloud Container Registryのデータエクスポート 手順に従って、これらの画像をダウンロードして保存する必要があります。
Code Engineは、顧客のコンテンツを処理するために使用される設定と構成をエクスポートするメカニズムを提供します。
以下のCode Engineエンティティの構成データは、このセクションで後述するコマンドを使用してエクスポートできます:
- プロジェクト
- アプリケーション
- アプリケーション・リビジョン
- ビルド
- ビルド実行
- 構成マップ
- 秘密
- ドメイン・マッピング
- イベントサブスクリプションIBM Cloud Object Storage'
cron、およびKafka) - 関数
- ジョブ
- ジョブ実行
データのエクスポートに必要なツール
Code Engine データをエクスポートするには、以下のコマンドラインツールをダウンロードしてインストールする必要があります:
- このCLIクライアントは、IBM Cloudクライアントです。CLIクライアント
- IBM Cloudをご覧ください。CLI 入門ページ を参照して、お使いのオペレーティングシステム用のCLIクライアントをインストールしてください。
- Code EngineCLIプラグインCLIプラグイン
- Visit the Code EngineCLIページ which has instructions on how to install the Code Engine plug-in for the IBM Cloud CLI.
- Kubernetes CLI クライアント
- Kubernetesのインストールツールページ にアクセスして、お使いのオペレーティングシステム用の「
kubectlCLIクライアントをインストールします。
- Kubernetesのインストールツールページ にアクセスして、お使いのオペレーティングシステム用の「
project 設定のエクスポート
Code Engineのプロジェクトは、関連する設定とワークロードのコンテナです。 プロジェクトをエクスポートしたい場合は、以下の'ibmcloud resource コマンドを使用する:
すべてのCode Engineプロジェクトを一覧表示するには、次のようにします:
ibmcloud resource service-instances --service-name codeengine
特定の地域のすべてのCode Engineプロジェクトを一覧表示するには、次のようにします:
ibmcloud resource service-instances --service-name codeengine --location us-south
エクスポートしたいCode Engineプロジェクトが決まったら、使用してください:
ibmcloud resource service-instance <project-name> -o json >project-name.json
Code Engine プロジェクトのエクスポートは、プロジェクト・エンティティ自体の構成のみをエクスポートします。 含まれる構成エンティティとワークロードエンティティは、別々にエクスポートする必要がある。
プロジェクト・エンティティをエクスポートするための'KUBECONFIG エクスポート
エクスポートしたいプロジェクトが決まったら、このドキュメントで説明されている「kubectl コマンドをそのプロジェクトにスコープするために、「KUBECONFIG 環境変数をエクスポートしなければならない。
この環境変数「KUBECONFIG 取得するには、以下のコマンドを実行する
ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current
これでプロジェクトが選択され、次のようなステートメントが表示される:
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"
export KUBECONFIG=xxx ステートメントをターミナル・プロンプトにコピーして実行する。 以下の'kubectl コマンドはすべて、このプロジェクトにスコープされるようになった。
application 設定のエクスポート
プロジェクト内のすべてのアプリケーションの設定をエクスポートするには、以下の「kubectl コマンドを実行する:
kubectl get service -o json >project-name_application-configurations.json
単一のアプリケーションのコンフィギュレーションをエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json
application revision 設定のエクスポート
プロジェクト内のすべてのアプリケーションリビジョンの設定をエクスポートするには、次の 'kubectl コマンドを実行します:
kubectl get revision -o json >project-name_application-revisions.json
1つのアプリケーション・リビジョンの設定をエクスポートしたい場合は、次の「kubectl コマンドを使用します:
kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json
build 設定のエクスポート
プロジェクト内の全ビルドの設定をエクスポートするには、以下の「kubectl コマンドを実行する:
kubectl get build -o json >project-name_build-configurations.json
単一ビルドのコンフィギュレーションをエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json
build run 設定のエクスポート
プロジェクト内のすべてのビルド実行の設定をエクスポートするには、以下の kubectl :
kubectl get buildrun -o json >project-name_buildrun-configurations.json
単一のbuildrunのコンフィギュレーションをエクスポートしたい場合は、以下の'kubectl コマンドを使用する:
kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json
configmap 設定のエクスポート
プロジェクト内のすべてのコンフィグマップの内容をエクスポートするには、以下の「kubectl コマンドを実行する:
kubectl get configmap -o json >project-name_configmaps.json
単一のコンフィグマップの内容をエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json
secret 設定のエクスポート
秘密の内容を永続ストレージ上のファイルにエクスポートしないでください。
プロジェクト内のすべてのシークレットの内容をエクスポートするには、以下の「kubectl コマンドを実行する:
kubectl get secret -o json >project-name_secrets.json
一つの秘密の内容をエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json
Code Engine シークレットに格納されている値は通常、 IBM Cloud Secrets Manager のような他のシステムで管理されている値のコピーである。 したがって、ほとんどの場合、秘密をエクスポートする必要はない。 それでもなお、 Code Engine から秘密をエクスポートする必要がある場合は、意図しない機密情報の開示を避けるために、すべての秘密をエクスポートするのではなく、単一の秘密をエクスポートすることを選択する必要があります。
domain mapping 設定のエクスポート
プロジェクト内のすべてのドメイン・マッピングの設定をエクスポートするには、以下の 'kubectl コマンドを実行する:
kubectl get domainmapping -o json >project-name_domainmappings.json
単一のドメインマッピングの設定をエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json
IBM Cloud Object Storage event subscription 設定のエクスポート
プロジェクト内のすべてのIBM Cloud Object Storageイベントサブスクリプションの設定をエクスポートするには、以下の'kubectl コマンドを実行する:
kubectl get cossource -o json >project-name_cos-event-subscriptions.json
単一のIBM Cloud Object Storageイベントサブスクリプションのコンフィギュレーションをエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json
cron event subscription 設定のエクスポート
プロジェクト内のすべての 'cron イベント・サブスクリプションの設定をエクスポートするには、以下の 'kubectl コマンドを実行します:
kubectl get pingsource -o json >project-name_cron-event-subscriptions.json
単一の'cron イベントサブスクリプションのコンフィギュレーションをエクスポートしたい場合は、以下の'kubectl コマンドを使用する:
kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json
Kafka event subscription 設定のエクスポート
プロジェクト内のすべてのKafkaイベントサブスクリプションの設定をエクスポートするには、次の「kubectl コマンドを実行します:
kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json
1つのKafkaイベントサブスクリプションの設定をエクスポートしたい場合は、次の'kubectl コマンドを使用します:
kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json
function 設定のエクスポート
プロジェクト内の全関数の設定をエクスポートするには、以下の「kubectl コマンドを実行する:
kubectl get function -o json >project-name_functions.json
一つの関数のコンフィギュレーションをエクスポートしたい場合は、以下の'kubectl コマンドを使用する:
kubectl get function <function-name> -o json >project-name-function-name_function.json
job 設定のエクスポート
プロジェクト内の全ジョブの設定をエクスポートするには、以下の 'kubectl コマンドを実行する:
kubectl get jobdefinition -o json >project-name_jobs.json
単一のジョブのコンフィギュレーションをエクスポートしたい場合は、以下の「kubectl コマンドを使用する:
kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json
job run 設定のエクスポート
プロジェクト内のすべてのjobrunの設定をエクスポートするには、次の'kubectl コマンドを実行します:
kubectl get jobrun -o json >project-name_jobruns.json
単一のジョブランのコンフィギュレーションをエクスポートしたい場合は、次の 'kubectl コマンドを使用します:
kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json
エクスポートされるデータ形式
Code Engineは、エクスポートされたデータ、構成、アプリケーションの以下のデータ形式とスキーマをサポートしています:
- JSON
例例:名前'export-sample、フォーマット'JSON のConfigMapをエクスポートすると、次のようなJSON出力が得られる:
コマンド:
kubectl get configmap export-sample -o json
出力:
{
"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"
}
}
kubectl コマンドを「-o json オプションとともに使用するすべてのコマンドは、Kubernetesと互換性のあるJSON出力を生成する。 ibmcloud resource」や「ibmcloud code-engine ような他のコマンドで生成されるJSONは、そのままではKubernetesと互換性があるとは考えられない。
Code Engineは、エクスポートされたデータ、構成、アプリケーションの以下のデータ形式とスキーマのエクスポートをサポートしていません:
- YAML
データ所有権
エクスポートされたデータはすべて顧客コンテンツとして分類されます。 IBM Cloudサービス契約」に記載されている通り、顧客の所有権とライセンス権を全面的に適用する。