GCP部署管理器在不同部署中使用相同的资源名称

时间:2018-04-24 06:51:55

标签: google-cloud-platform google-deployment-manager

要弄清楚当我们在不同的部署中具有相同的资源名称时Deployment Manager的行为,我执行了以下步骤:

  1. 我使用名为vm1的单个VM创建名为dep-1的部署。
  2. 然后我创建了一个名为dep-2的部署,其中包含名为vm1的相同VM。
  3. 我原以为dep-2会失败,说资源已经存在同名但成功没有任何警告/错误。

    稍后当我删除dep-2时,它删除了名为vm-1的虚拟机资源。

    现在我想知道如何处理这种行为。假设我想为dev,qa和prod部署我的环境。在GCP部署管理器中执行此操作的最佳做​​法是什么?

2 个答案:

答案 0 :(得分:0)

我假设您为两个部署使用了相同的yaml文件(相同的实例名称和相同的区域)。

  • 第一次部署创建了实例,正如预期的那样没有问题。
  • 第二次部署没有创建另一个实例,只需为此部署分配相同的实例。这就是您在删除部署dep-2时删除实例的原因。

要查看错误,您可以为项目转到Stackdriver Logging page。并过滤instances creation的日志。

答案 1 :(得分:0)

此链接记录了Deployment Manager更新策略。上述行为是预期的。

https://cloud.google.com/deployment-manager/docs/deployments/updating-deployments#prepare_your_update

https://cloud.google.com/deployment-manager/docs/deployments/updating-deployments#optional_determine_the_policies_to_use_for_the_update

(可选)确定用于更新的策略

  • 添加资源的默认策略是CREATE_OR_ACQUIRE。
  • 删除资源的默认策略是DELETE。
  • 更新资源的默认策略是UPDATE。