将 GKE 测试版功能与 GCP 部署管理器结合使用

Use GKE beta features with GCP Deployment Manager

我正在尝试使用 GCP 部署管理器创建 GKE REGION 集群(测试版功能)。 但是我得到了错误。有什么方法可以通过 Deployment Manager 使用 GKE beta 功能(包括区域集群)?

ERROR: (gcloud.beta.deployment-manager.deployments.create) Error in             
Operation [operation-1525054837836-56b077fdf48e0-a571296c-604523fb]: 
errors:
- code: RESOURCE_ERROR
  location: /deployments/test-cluster1/resources/source-cluster
  message: '{"ResourceType":"container.v1.cluster","ResourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"v1 API cannot be used to access GKE regional clusters. See https://cloud.google.com/kubernetes-engine/docs/reference/api-organization#beta for more information.","status":"INVALID_ARGUMENT","statusMessage":"Bad Request","requestPath":"https://container.googleapis.com/v1/projects/project_id/zones/us-central1/clusters","httpMethod":"POST"}}'

报错信息中,gcp帮助link

https://cloud.google.com/kubernetes-engine/docs/reference/api-organization#beta

按照那里的描述配置,但仍然出现错误。

我的部署管理器 yaml 文件看起来像,

resources:
- name: source-cluster
type: container.v1.cluster
properties:
  zone: us-central1
  cluster:
    name: source
    initialNodeCount: 3

然而,区域集群完全可用。所以我认为这与部署管理器命令中容器 v1beta api 的使用有关。

resources:
- name: source-cluster
type: container.v1.cluster
properties:
  zone: us-central1-b
  cluster:
    name: source
    initialNodeCount: 3

谢谢。

您收到的错误消息似乎与以下事实有关:您正在尝试使用测试版功能,但您将 Deployment Manager 资源指定为使用 API v1(即容器。v1.cluster).这意味着您尝试创建的 Beta 资源与指定资源之间存在不一致。

我对此进行了调查,发现通过 Deployment Manager 添加区域集群的功能是 Google Cloud Platform 的一项最新功能,详见 public feature request最近已实施。

您似乎需要将 API 类型指定为 'gcp-types/container-v1beta1:projects.locations.clusters' 才能正常工作,而不是在 YAML 中使用 'zone' 或 'region' 键,您将改用包含位置的父项 属性。

所以您的 YAML 看起来像这样(将 PROJECT_ID 替换为您自己的)。

resources:
- type:  gcp-types/container-v1beta1:projects.locations.clusters
  name: source-cluster
  properties:
   parent: projects/PROJECT_ID/locations/us-central1
   cluster:
     name: source
     initialNodeCount: 3