gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:39:15 25 4
gpt4 key购买 nike

我有一个小的 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 时它会起作用。

我该如何解决这个问题?

最佳答案

查看 Kubernetes release notes , kubectl rollout restart 命令在 v1.15 版本中被引入。在您的情况下,Cloud Build 似乎使用的是尚未实现此命令的旧版本。

进行一些测试后,Cloud Build 似乎使用 kubectl 客户端版本,具体取决于集群的服务器版本。例如,当运行以下构建时:

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.14 kubectl 客户端并返回相同的 unknown command "restart" 错误消息。 master版本为v1.15时,Cloud Build使用v1.15 kubectl客户端,命令运行成功。

关于您的情况,我怀疑您的集群“cents-ideas”主版本为 <1.15,这可以解释您遇到的错误。至于为什么它在您手动运行命令时起作用(我在本地理解),我怀疑您的 kubectl 可能已通过主版本 >=1.15 的另一个集群的身份验证。

关于kubernetes - Cloud Build - "rollout restart"无法识别(未知命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58746806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com