【发布时间】:2019-11-07 10:32:57
【问题描述】:
我有一个小的 cloudbuild.yaml 文件,用于构建 Docker 映像,将其推送到 Google container registry (GCR),然后将更改应用到我的 Kubernetes 集群。它看起来像这样:
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: [
'-c',
'docker pull gcr.io/$PROJECT_ID/frontend:latest || exit 0'
]
- name: "gcr.io/cloud-builders/docker"
args:
[
"build",
"-f",
"./services/frontend/prod.Dockerfile",
"-t",
"gcr.io/$PROJECT_ID/frontend:$REVISION_ID",
"-t",
"gcr.io/$PROJECT_ID/frontend:latest",
".",
]
- name: "gcr.io/cloud-builders/docker"
args: ["push", "gcr.io/$PROJECT_ID/frontend"]
- name: "gcr.io/cloud-builders/kubectl"
args: ["apply", "-f", "kubernetes/gcp/frontend.yaml"]
env:
- "CLOUDSDK_COMPUTE_ZONE=europe-west3-a"
- "CLOUDSDK_CONTAINER_CLUSTER=cents-ideas"
- name: "gcr.io/cloud-builders/kubectl"
args: ["rollout", "restart", "deployment/frontend-deployment"]
env:
- "CLOUDSDK_COMPUTE_ZONE=europe-west3-a"
- "CLOUDSDK_CONTAINER_CLUSTER=cents-ideas"
构建运行顺利,直到最后一步。 args: ["rollout", "restart", "deployment/frontend-deployment"]。它具有以下日志输出:
Already have image (with digest): gcr.io/cloud-builders/kubectl
Running: gcloud container clusters get-credentials --project="cents-ideas" --zone="europe-west3-a" "cents-ideas"
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cents-ideas.
Running: kubectl rollout restart deployment/frontend-deployment
error: unknown command "restart deployment/frontend-deployment"
See 'kubectl rollout -h' for help and examples.
据称,restart 是一个未知命令。但是当我手动运行kubectl rollout restart deployment/frontend-deployment 时它可以工作。
我该如何解决这个问题?
【问题讨论】:
-
您是否尝试过仅将命令编写为 1 个参数?喜欢
args: ["rollout restart deployment/frontend-deployment"] -
是的,它也不起作用
标签: kubernetes google-kubernetes-engine google-cloud-build