将 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
我正在尝试使用 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