管理和删除资源


了解 Config Connector 如何管理现有资源以及如何处理删除资源

创建资源

创建资源时,如果该资源不存在,则 Config Connector 会创建该资源。如果已存在同名的 Google Cloud 资源,则 Config Connector 将获取该资源并进行管理。

如需详细了解如何创建资源,请参阅使用入门

您还可以使用 resourceID 字段管理资源。如需了解详情,请参阅使用 resourceID 字段管理资源

获取现有资源

本部分介绍如何使用 Config Connector 获取现有的 BigQuery 资源。

准备工作

  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

有关流量获取限制的资源

具有服务生成的资源 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

如需了解如何使用 resourceID 字段,请参阅使用 resourceID 字段管理资源

无法获取的资源

以下 Config Connector 资源不支持获取现有的 Google Cloud 资源:

  • DataflowFlexTemplateJob
  • FirestoreIndex
  • IAMServiceAccountKey

删除后保留资源

...
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

后续步骤

  • 详细了解 Config Connector 如何使用 Kubernetes 构造对 Google Cloud 资源进行建模。
  • 查看 Config Connector 可以管理的 Google Cloud 资源
  • 查看其他示例以了解如何使用 GitHub 代码库中的 Config Connector。
  • 了解 Kubernetes 如何处理对象的声明式配置