Code Engine 대한 데이터 이식성 이해

데이터 이동성에는 고객이 다른 서비스 제공업체나 온프레미스 소프트웨어에서 유사한 워크로드 및 데이터 처리를 구현하는 데 필요한 디지털 아티팩트를 내보낼 수 있는 일련의 명령이 포함됩니다. 여기에는 서비스에서 데이터를 저장하고 처리하는 데 사용하는 관련 구성을 포함하여 서비스 고객 콘텐츠를 고객 자신의 위치로 내보내는 명령이 포함되어 있습니다.

책임

{{{site.data.keyword.cloud_notm}} 서비스는 고객이 직접 선택한 위치에 관련 구성을 포함한 서비스 고객 콘텐츠를 복사하여 저장하도록 안내하는 인터페이스와 지침을 제공합니다.

고객은 내보낸 데이터의 사용 및 다른 인프라로의 데이터 이동을 위한 구성에 대한 책임이 있습니다:

  • 다른 클라우드 제공업체 또는 IBM 서비스와 유사한 기능을 제공하는 온프레미스 소프트웨어에 대체 인프라를 설정하기 위한 계획 및 실행.
  • 고객 애플리케이션 코드의 적응, 배포 자동화 등 대체 인프라에서 필요한 애플리케이션 코드의 포팅을 위한 계획 및 실행을 수행합니다.
  • 내보낸 데이터와 구성을 대체 인프라 및 해당 애플리케이션에 필요한 형식으로 변환합니다.

Code Engine에 대한 회원님의 책임에 대한 자세한 내용은 Code Engine 사용 시 회원님의 책임 이해하기를 참조하세요.

데이터 내보내기 절차

{{{site.data.keyword.codeengineshort}} 소스 코드에서 컨테이너 이미지를 빌드하는 메커니즘을 제공합니다. 소스 코드는 로컬 또는 Github에 저장할 수 있습니다. { Code Engine 이러한 컨테이너 이미지를 다운로드하는 명령이나 도구를 제공하지 않습니다. 대신 고객은 IBM Cloud Container Registry 대한 데이터 내보내기 절차에 따라 해당 이미지를 다운로드하여 저장해야 합니다.

{{{site.data.keyword.codeengineshort}} 고객의 콘텐츠를 처리하는 데 사용되는 설정 및 구성을 내보낼 수 있는 메커니즘을 제공합니다.

이 섹션의 뒷부분에 지정된 명령을 사용하여 다음 Code Engine 엔티티에 대한 구성 데이터를 내보낼 수 있습니다:

  • 프로젝트
  • 애플리케이션
  • 애플리케이션 개정
  • 빌드
  • 빌드 실행
  • Configmap
  • 시크릿
  • 도메인 맵핑
  • 이벤트 구독IBM Cloud Object Storage, ' cron, 및 Kafka)
  • 함수
  • 작업
  • 작업 실행

데이터 내보내기에 필요한 도구

Code Engine 데이터를 내보내려면 다음 명령줄 도구를 다운로드하여 설치해야 합니다:

  • IBM Cloud CLI 클라이언트
    • IBM Cloud 참조하세요 CLI 시작하기 페이지로 이동하여 운영 체제용 CLI 클라이언트를 설치하세요.
  • Code Engine CLI 플러그인
    • ' IBM Cloud ' CLI용 ' Code Engine 플러그인을 설치하는 방법에 대한 지침이 있는 ' Code Engine CLI 페이지 '을 방문하세요.
  • Kubernetes CLI 클라이언트

' 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

단일 애플리케이션 리비전의 구성을 내보내려면 다음 ' 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

단일 빌드런의 구성을 내보내려면 다음 ' 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

단일 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 ' 구성 내보내기

프로젝트의 모든 작업 실행 구성을 내보내려면 다음 ' kubectl ' 명령을 실행하세요:

kubectl get jobrun -o json >project-name_jobruns.json

단일 작업 실행의 구성을 내보내려면 다음 ' kubectl ' 명령을 사용하세요:

kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json

내보낸 데이터 형식

{{{site.data.keyword.codeengineshort}} 내보낸 데이터, 구성 및 애플리케이션의 다음 데이터 형식과 스키마를 지원합니다:

  • JSON

예시: 이름 ' export-sample ', 형식 ' JSON '로 ConfigMap 내보내면 다음과 같은 JSON 출력이 생성됩니다:

Command: 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"
    }
}

' -o json ' 옵션과 함께 ' kubectl ' 명령을 사용하는 모든 명령은 ' Kubernetes'과 호환되는 JSON 출력을 생성합니다. ' ibmcloud resource ' 또는 ' ibmcloud code-engine '와 같은 다른 명령으로 생성된 JSON은 그대로 Kubernetes 호환된다고 가정할 수 없습니다.

{{{site.data.keyword.codeengineshort}} 내보낸 데이터, 구성 및 애플리케이션의 다음 데이터 형식 및 스키마 내보내기를 지원하지 않습니다:

  • YAML

데이터 소유권

내보낸 모든 데이터는 고객 콘텐츠로 분류됩니다. ' IBM Cloud 서비스 계약'에 명시된 대로 전체 고객 소유권 및 라이선스 권한을 적용합니다.