繁体   English   中英

cloud-build + gke-deploy 应用名称或 label 被忽略

[英]cloud-build + gke-deploy app name or label are ignored

我在 cloudbuild.yaml 文件中有这个配置:

- name: 'gcr.io/cloud-builders/gke-deploy'
args:
  - run
  - --app=doc-io
  - --namespace=frontend
  - --cluster=cluster-dev
  - --location=europe-west1-b
  - --image=gcr.io/${PROJECT_ID}/github.com/ourprojet/docs-io:dev-${SHORT_SHA}
  - --version=dev-${SHORT_SHA}

但这会在 GKE 中创建一个名为“docs-io”的新工作负载,而不是将我最新的 docker 映像部署到现有工作负载“doc-io”。

无论我在云构建方面做什么,即使直接在云构建配置中添加环境变量_K8S_APP_NAME_K8S_LABELS - 它也会在 GKE 上创建一个名为docs-io的新工作负载。

我无法在任何地方找到 cloud-build 或 gke-deploy 采用的默认“工作负载”名称,也找不到如何覆盖它。

有没有人遇到过这个问题? 任何线索如何指示 docker 部署必须发生在哪里?

好吧,很容易从文档中遗漏,但必须做的是保留在创建工作负载时生成的 yaml 文件(否则很容易重新创建)。

否则,正如 Gari Singh 在对我的问题的评论中提到的那样,将生成一个新的工作负载(或替换之前的工作负载)。

因此,在工作负载配置文件中,无需任何特定标签(图像级别),只需将其放在 Google Storage 文件夹中即可。 然后:

# GKE run deploy
- name: 'gcr.io/cloud-builders/gke-deploy'
args:
  - run
  - --filename=gs://path/to/config/myserviceconfig.yml
  - ...

通过这种方式,您可以在 GKE 集群上进行干净的部署。

关于没有文件名参数会发生什么,该文档有点想念,希望它有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM