resourceID 필드로 리소스 관리

이 페이지에서는 resourceID 필드를 사용하여 리소스를 관리하는 방법을 설명합니다.

구성 커넥터를 사용하면 '변경할 수 없지만 선택적' resourceID 필드를 사용하여 Google Cloud리소스의 리소스 ID를 명시적으로 지정하여 리소스를 만들거나 가져옵니다. '변경할 수 있지만 선택적'이라 함은 resourceID 필드를 지정하거나 지정하지 않을 수 있지만 클러스터에 매니페스트를 적용한 후 resourceID 필드 값을 변경할 수 없음을 의미합니다.

resourceID 필드는 사용자 지정 리소스 ID를 포함하는 Google Cloud리소스의 이름 지정을 보다 유연하게 할 수 있도록 지원합니다. Config Connector 리소스에서 resourceID 필드를 사용하면 동일한 네임스페이스 내의 서로 다른 프로젝트, 폴더, 조직 또는 상위 리소스에서 동일한 Google Cloud리소스 이름으로 동일한 종류의 여러 구성 커넥터 리소스를 정의할 수 있습니다. Google Cloud 리소스 이름은 Kubernetes 객체 이름의 이름 지정 규칙에 의한 제한을 받지 않습니다. 또한 resourceID 필드를 사용하면 서비스 생성 리소스 ID가 포함된 Google Cloud 리소스를 가져올 수 있습니다.

구성 커넥터는 네임스페이스를 리소스의 '소유자'로 지정하여 다른 소유자가 가져가지 못하도록 방지합니다. 그러나 resourceID 필드를 사용하는 경우 동일한 네임스페이스 내에서 생성되었으며 동일한 Google Cloud 리소스 이름을 가진 리소스가 여러 개 있을 수 있습니다. 이러한 리소스로 인해 구성 커넥터가 관리할 수 없는 충돌이 발생합니다. 해당 충돌은 수동으로 해결해야 합니다.

리소스 ID 유형

구성 커넥터에서 리소스 ID는 사용자 지정 또는 서비스 생성일 수 있습니다.

사용자 지정 리소스 ID
리소스 생성 전에 사용자가 결정, 지정, 및 전달하는 리소스 ID입니다. resourceID 필드를 사용하여 사용자 지정 리소스 ID가 포함된 리소스를 만들거나 가져올 수 있습니다.
서비스 생성 리소스 ID
리소스 생성 시에 서비스에서 생성한 리소스 ID입니다. 리소스를 성공적으로 만든 후 사용자가 이를 검색할 수 있습니다. resourceID 필드를 사용하여 서비스 생성 리소스 ID가 포함된 리소스를 가져올 수 있습니다. 서비스 생성 리소스 ID가 포함된 새 리소스를 만들려면 필드를 지정하지 마세요. 서비스 생성 리소스 ID가 포함된 리소스 목록을 참조하세요.

resourceID 필드 지정

리소스의 spec에서 resourceID 필드를 지정할 수 있습니다.

다음 매니페스트는 Pub/Sub 주제의 resourceID 필드를 지정하는 방법을 설명합니다. 구성 커넥터 리소스의 이름은 pubsub-topic-sample이고 Pub/Sub 주제의 이름은 pubsub-topic-id입니다.

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: pubsub-topic-sample
spec:
  resourceID: pubsub-topic-id

resourceID 필드로 리소스 만들기

BigQuery 데이터 세트 만들기

이 예시에서는 구성 커넥터가 resourceID 필드로 새 BigQuery 데이터 세트를 만듭니다. resourceID 필드 값은 BigQuery 데이터 세트의 datasetId 필드에 대한 이름 지정 규칙을 따라야 합니다.

  1. 다음 내용을 bigquery-dataset.yaml 파일에 복사합니다.

      apiVersion: bigquery.cnrm.cloud.google.com/v1beta1
      kind: BigQueryDataset
      metadata:
        name: bigquerydataset-sample-for-creation
      spec:
        resourceID: bigquerydataset_sample_with_resourceid
        defaultTableExpirationMs: 3600000
        description: "BigQuery Dataset Sample with the ResourceID Field"
        friendlyName: bigquerydataset-sample-with-resourceid
        location: US
    
  2. YAML 파일을 클러스터에 적용합니다.

    kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml

    CC_NAMESPACE를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.

  3. 데이터 세트에 대한 세부정보를 보려면 kubectl describe을 사용합니다.

    kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation

    CC_NAMESPACE를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.

resourceID 필드로 리소스 획득

resourceID 필드로 Google Cloud 리소스를 관리할 때 구성 커넥터는 다음과 같은 경우에 리소스를 가져옵니다.

  • 리소스에 사용자 지정 리소스 ID가 있고, 매니페스트와 리소스 이름의 값이 기존 리소스와 일치합니다. 또는
  • 리소스에 서비스 생성 리소스 ID가 있습니다.

폴더 가져오기

구성 커넥터에서 resourceID 필드를 사용하여 폴더를 획득하려면 다음 단계를 완료하세요.

  1. 다음 내용을 folder.yaml 파일에 복사합니다.

        apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
        kind: Folder
        metadata:
          annotations:
            cnrm.cloud.google.com/organization-id: ORG_ID
            # Remove the deletion-policy annotation if it is safe to delete the
            # folder when the resource is deleted from your cluster.
            cnrm.cloud.google.com/deletion-policy: "abandon"
          name: folder-sample-for-acquisition
        spec:
          resourceID: ACQUIRED_FOLDER_ID
          displayName: ACQUIRED_FOLDER_DISPLAY_NAME
    

    다음을 바꿉니다.

    • ORG_ID를 조직의 숫자 ID로 바꿉니다.
    • ACQUIRED_FOLDER_ID를 획득할 폴더의 숫자 ID로 바꿉니다.
    • ACQUIRED_FOLDER_DISPLAY_NAME을 획득할 폴더의 표시 이름으로 바꿉니다.
  2. YAML 파일을 클러스터에 적용합니다.

    kubectl apply --namespace CC_NAMESPACE -f folder.yaml

    CC_NAMESPACE를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.

  3. 폴더의 세부정보를 보려면 kubectl describe를 사용합니다.

    kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition

    CC_NAMESPACE를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.

다음 단계

구성 커넥터가 지원하는 리소스에 대해 알아보려면 리소스 참조를 검토하세요.