resourceID 필드로 리소스 관리


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

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

resourceID 필드는 사용자 지정 리소스 ID를 포함하는 Google Cloud 리소스의 이름 지정을 보다 유연하게 할 수 있도록 지원합니다. Config Connecter 리소스에서 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를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.

다음 단계

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