管理和删除资源
本页面介绍 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资源:
AccessContextManagerAccessPolicyApigeeOrganizationBillingBudgetsBudgetCloudIdentityGroupCloudIdentityMembershipComputeFirewallPolicyDLPDeidentifyTemplateDLPInspectTemplateDLPJobTriggerDLPStoredInfoTypeFolderIAPBrandIAPIdentityAwareProxyClientIdentityPlatformTenantMonitoringAlertPolicyMonitoringGroupMonitoringNotificationChannelMonitoringUptimeCheckConfigRecaptchaEnterpriseKeyResourceManagerLienSQLSSLCertSecretManagerSecretVersionStorageNotificationStorageTransferJobVertexAIDatasetVertexAIIndex
如需了解如何使用 resourceID 字段,请参阅使用 resourceID 字段管理资源。
无法获取的资源
以下 Config Connector 资源不支持获取现有 Google Cloud 资源:
DataflowFlexTemplateJobFirestoreIndexIAMServiceAccountKey
后续步骤
- 详细了解 Config Connector 如何使用 Kubernetes 构造对 Google Cloud 资源进行建模。
- 查看 Config Connector 可以管理的 Google Cloud 资源。
- 查看其他示例以了解如何使用 GitHub 代码库中的 Config Connector。
- 了解 Kubernetes 如何处理对象的声明式配置。