![Google Cloud Deployment Manager 和资源变更](https://linux22.com/image/704286/Google%20Cloud%20Deployment%20Manager%20%E5%92%8C%E8%B5%84%E6%BA%90%E5%8F%98%E6%9B%B4.png)
我想在 Google Cloud 中部署一个应用程序。它需要以下 Google Cloud 组件:
- Google Container Engine(因此我可以在 Kubernetes 集群内运行应用程序)
- Google Compute Engine 持久磁盘(附加到应用程序 Kubernetes pod)
- Kubernetes 部署(包含在 pod 中运行的应用程序)
我正在评估部署管理器作为基础设施即代码方法的工具。
目前我发现以下问题:
更改容器引擎集群大小
在我的 Deployment Manager yaml 模板中更改容器引擎集群大小无法应用:
gcloud deployment-manager deployments update <deployment-name> --config <deployment-config.yml>
失败:
{"ResourceType":"container.v1.cluster","ResourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"收到的 JSON 负载无效。未知名称 \"cluster\":找不到字段。","status":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.BadRequest","fieldViolations":[{"description":"收到的 JSON 负载无效。未知名称 \"cluster\":找不到字段。"}]}],"statusMessage":"错误请求","requestPath":"https://container.googleapis.com/v1/projects/1013690875001/zones/europe-west1-b/clusters/dev-cluster"}}
调整持久磁盘大小
当我更改模板中的磁盘大小并尝试应用更改(再次使用gcloud deployment-manager deployments update
命令)时,我也收到错误:
未找到更新资源“my-data-storage”(类型为“compute.v1.disk”)上字段“sizeGb”的方法。可能需要使用新字段重新创建资源。
问题
我认为上面描述的操作是适用于该环境的最常见的操作,但我很惊讶它们不受支持。
我是否误解了部署管理器的使用方法,或者它没有提供我需要的功能?我应该如何管理此类环境变化,以便可以在源代码管理中跟踪它们(而不是像命令式命令那样cloud compute disks resize
)?
答案1
看起来第一个案例(调整集群大小)是已经向 Google 报告的问题:更新容器引擎属性导致 400:已收到 JSON 负载。未知名称“cluster”
对于第二个问题,我也提出了一个问题:部署管理器不支持持久磁盘大小调整
更新
调整持久磁盘大小的问题已解决。
答案2
这是来自 GCP 的令人困惑的错误消息。您的 JSON 没有任何问题,但配置状态转换无法更新。如果这会产生错误就太好了incompatible configuration update
。
就我而言,我们添加了范围,但事实证明无法更新(添加或删除)。