首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloud Build -无法识别"rollout restart“(未知命令)

Cloud Build -无法识别"rollout restart“(未知命令)
EN

Stack Overflow用户
提问于 2019-11-07 18:32:58
回答 1查看 2.8K关注 0票数 2

我有一个很小的cloudbuild.yaml文件,我在其中构建Docker镜像,将其推送到Google container registry (GCR),然后将更改应用到我的Kubernetes集群。它看起来是这样的:

代码语言:javascript
复制
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"]。它有以下日志输出:

代码语言:javascript
复制
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时,它可以工作。

我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-10 21:36:19

看看Kubernetes release noteskubectl rollout restart命令是在v1.15版本中引入的。在您的案例中,Cloud Build似乎正在使用一个较旧的版本,其中该命令尚未实现。

在做了一些测试之后,看起来Cloud Build使用的是kubectl客户端版本,这取决于集群的服务器版本。例如,在运行以下构建时:

代码语言:javascript
复制
steps:
  - name: "gcr.io/cloud-builders/kubectl"
    args: ["version"]
    env:
      - "CLOUDSDK_COMPUTE_ZONE=<cluster_zone>"
      - "CLOUDSDK_CONTAINER_CLUSTER=<cluster_name>"

如果集群的主版本是v1.14,则Cloud Build使用v1.14kubectl客户端,并返回相同的unknown command "restart"错误消息。master版本为v1.15时,Cloud Build使用v1.15 kubectl客户端,命令运行成功。

因此,关于您的情况,我怀疑您的集群“美分-ideas”主版本低于1.15,这可以解释您收到的错误。根据您手动运行该命令的原因(我在本地理解),我怀疑您的kubectl可能已通过主版本>=1.15的另一个集群的身份验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58746806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档