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
필드에 대한 이름 지정 규칙을 따라야 합니다.
다음 내용을
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
YAML 파일을 클러스터에 적용합니다.
kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml
CC_NAMESPACE
를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.데이터 세트에 대한 세부정보를 보려면
kubectl describe
을 사용합니다.kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation
CC_NAMESPACE
를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.
resourceID 필드로 리소스 획득
resourceID
필드로 Google Cloud 리소스를 관리할 때 구성 커넥터는 다음과 같은 경우에 리소스를 가져옵니다.
- 리소스에 사용자 지정 리소스 ID가 있고, 매니페스트와 리소스 이름의 값이 기존 리소스와 일치합니다. 또는
- 리소스에 서비스 생성 리소스 ID가 있습니다.
폴더 가져오기
구성 커넥터에서 resourceID
필드를 사용하여 폴더를 획득하려면 다음 단계를 완료하세요.
다음 내용을
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
을 획득할 폴더의 표시 이름으로 바꿉니다.
YAML 파일을 클러스터에 적용합니다.
kubectl apply --namespace CC_NAMESPACE -f folder.yaml
CC_NAMESPACE
를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.폴더의 세부정보를 보려면
kubectl describe
를 사용합니다.kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition
CC_NAMESPACE
를 구성 커넥터가 관리하는 리소스의 네임스페이스로 바꿉니다.
다음 단계
구성 커넥터가 지원하는 리소스에 대해 알아보려면 리소스 참조를 검토하세요.