管理和删除资源


本页面介绍 Config Connector 如何管理现有资源以及如何处理删除资源

使用 Config Connector 定义资源时,会发生以下操作之一:

  • 如果资源不存在,Config Connector 会创建该资源。如需查看创建新资源的示例,请参阅使用入门
  • 如果已存在同名的资源,Config Connector 会获取该资源并开始管理它。Config Connector 会在组织、项目或文件夹中检查该名称。本页详细介绍了 Config Connector 如何获取、管理和处理资源删除。

您也可以使用 resourceID 字段管理资源。某些资源只能通过 resourceID 字段获取。某些资源只能作为新资源创建,而无法获取。如需了解详情,请参阅使用 resourceID 字段管理资源

获取现有资源

本部分以 BigQuery 资源为例,介绍如何使用 Config Connector 获取现有资源。

准备工作

  1. 启用 BigQuery API
  2. 确认您有权访问 bq 命令行工具。如果您没有 bq,请使用 Cloud Shell,或者使用 gcloud CLI 进行安装。

获取 BigQuery 数据集

当清单与资源名称中的值匹配时,Config Connector 会获取或控制资源。如果资源没有名称(例如,项目 ID),则会使用资源的 ID。

通过创建空的 BigQuery 数据集,然后使用 Config Connector 获取数据集,您将了解 Config Connector 如何处理现有资源。

  1. 使用 bq 创建一个名为 bigquerydatasetsample 的 BigQuery 数据集。

    bq --location=US mk \
    --dataset \
    --default_table_expiration 3600 \
    --description description \
    PROJECT_ID:bigquerydatasetsample
  2. 将以下内容复制到名为 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
    
  3. 将 YAML 应用到您的集群。

    kubectl apply --namespace CC_NAMESPACE -f bq-sample.yaml

    CC_NAMESPACE 替换为 Config Connector 从其管理资源的命名空间。

  4. 使用 kubectl describe 查看数据集的相关详情。

    kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydatasetsample

    CC_NAMESPACE 替换为 Config Connector 从其管理资源的命名空间。

    kubectl describe 的输出包括有关资源状态和所有权的元数据。

删除数据集

默认情况下,在 Config Connector 获取和管理资源之后,从集群中删除对象将会删除该资源。如果您希望保留数据集,请设置资源的 deletion-policy

例如,删除获取了 bigquerydataset-sample 的清单时,会从 BigQuery 中删除数据集。

  1. 您可以使用 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
    
  2. 使用 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 如何处理对象的声明式配置