管理和删除资源
本页面介绍 Config Connector 如何管理现有资源以及如何处理删除资源。
使用 Config Connector 定义资源时,会发生以下操作之一:
- 如果资源不存在,Config Connector 会创建该资源。如需查看创建新资源的示例,请参阅使用入门。
- 如果已存在同名的资源,Config Connector 会获取该资源并开始管理它。Config Connector 会在组织、项目或文件夹中检查该名称。本页详细介绍了 Config Connector 如何获取、管理和处理资源删除。
您也可以使用 resourceID 字段管理资源。某些资源只能通过 resourceID 字段获取。某些资源只能作为新资源创建,而无法获取。如需了解详情,请参阅使用 resourceID 字段管理资源。
获取现有资源
本部分以 BigQuery 资源为例,介绍如何使用 Config Connector 获取现有资源。
准备工作
- 启用 BigQuery API。
- 确认您有权访问 bq命令行工具。如果您没有bq,请使用 Cloud Shell,或者使用 gcloud CLI 进行安装。
获取 BigQuery 数据集
当清单与资源名称中的值匹配时,Config Connector 会获取或控制资源。如果资源没有名称(例如,项目 ID),则会使用资源的 ID。
通过创建空的 BigQuery 数据集,然后使用 Config Connector 获取数据集,您将了解 Config Connector 如何处理现有资源。
- 使用 - bq创建一个名为- bigquerydatasetsample的 BigQuery 数据集。- bq --location=US mk \--dataset \ --default_table_expiration 3600 \ --description description \ PROJECT_ID:bigquerydatasetsample
- 将以下内容复制到名为 - bq-sample.yaml的文件。- apiVersion: bigquery.cnrm.cloud.google.com/v1beta1 kind: BigQueryDataset metadata: name: bigquerydatasetsample spec: defaultTableExpirationMs: 3600000 description: "BigQuery Dataset Sample" friendlyName: bigquerydataset-sample location: US
- 将 YAML 应用到您的集群。 - kubectl apply --namespace CC_NAMESPACE -f bq-sample.yaml - 将 - CC_NAMESPACE替换为 Config Connector 从其管理资源的命名空间。
- 使用 - kubectl describe查看数据集的相关详情。- kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydatasetsample - 将 - CC_NAMESPACE替换为 Config Connector 从其管理资源的命名空间。- kubectl describe的输出包括有关资源状态和所有权的元数据。
删除数据集
默认情况下,在 Config Connector 获取和管理资源之后,从集群中删除对象将会删除该资源。如果您希望保留数据集,请设置资源的 deletion-policy。
例如,删除获取了 bigquerydataset-sample 的清单时,会从 BigQuery 中删除数据集。
- 您可以使用 - kubectl delete删除- bigquerydataset-sample数据集。- kubectl delete --namespace CC_NAMESPACE -f bq-sample.yaml - 将 - CC_NAMESPACE替换为 Config Connector 从其管理资源的命名空间。- kubectl的输出确认删除:- bigquerydataset.bigquery.cnrm.cloud.google.com "bigquerydatasetsample" deleted
- 使用 - bq确认数据集不再存在。- bq show PROJECT_ID:bigquerydatasetsample - 命令的输出包括 - Not Found。
删除后保留资源
...
metadata:
  annotations:
    cnrm.cloud.google.com/deletion-policy: abandon
...
例如,先前介绍的 BigQuery 数据集的 YAML(包括 abandon 删除政策)如下所示:
apiVersion: bigquery.cnrm.cloud.google.com/v1beta1
kind: BigQueryDataset
metadata:
  name: bigquerydatasetsample
  annotations:
    cnrm.cloud.google.com/deletion-policy: abandon
spec:
  defaultTableExpirationMs: 3600000
  description: "BigQuery Dataset Sample"
  friendlyName: bigquerydataset-sample
  location: US
有关流量获取限制的资源
有些资源无法按照上一部分中的说明获取。本部分详细介绍了部分资源的获取限制。
具有服务生成的资源 ID 的资源
您只能使用 resourceID 字段来获取具有服务生成的资源 ID 的 Google Cloud 资源。
以下 Config Connector 资源对应于具有服务生成的资源 ID 的 Google Cloud资源:
- AccessContextManagerAccessPolicy
- ApigeeOrganization
- BillingBudgetsBudget
- CloudIdentityGroup
- CloudIdentityMembership
- ComputeFirewallPolicy
- DLPDeidentifyTemplate
- DLPInspectTemplate
- DLPJobTrigger
- DLPStoredInfoType
- Folder
- IAPBrand
- IAPIdentityAwareProxyClient
- IdentityPlatformTenant
- MonitoringAlertPolicy
- MonitoringGroup
- MonitoringNotificationChannel
- MonitoringUptimeCheckConfig
- RecaptchaEnterpriseKey
- ResourceManagerLien
- SQLSSLCert
- SecretManagerSecretVersion
- StorageNotification
- StorageTransferJob
- VertexAIDataset
- VertexAIIndex
如需了解如何使用 resourceID 字段,请参阅使用 resourceID 字段管理资源。
无法获取的资源
以下 Config Connector 资源不支持获取现有 Google Cloud 资源:
- DataflowFlexTemplateJob
- FirestoreIndex
- IAMServiceAccountKey
后续步骤
- 详细了解 Config Connector 如何使用 Kubernetes 构造对 Google Cloud 资源进行建模。
- 查看 Config Connector 可以管理的 Google Cloud 资源。
- 查看其他示例以了解如何使用 GitHub 代码库中的 Config Connector。
- 了解 Kubernetes 如何处理对象的声明式配置。