Kubernetes 云计算构建——”;“重新启动”卷展栏;无法识别(未知命令)
我有一个小的Kubernetes 云计算构建——”;“重新启动”卷展栏;无法识别(未知命令),kubernetes,google-kubernetes-engine,google-cloud-build,Kubernetes,Google Kubernetes Engine,Google Cloud Build,我有一个小的cloudbuild.yaml文件,在其中我构建了一个Docker映像,将其推送到(GCR),然后将更改应用到我的Kubernetes集群。看起来是这样的: steps: - name: 'gcr.io/cloud-builders/docker' entrypoint: 'bash' args: [ '-c', 'docker pull gcr.io/$PROJECT_ID/frontend:latest || exit 0' ]
cloudbuild.yaml
文件,在其中我构建了一个Docker映像,将其推送到(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"
构建运行平稳,直到最后一步<代码>参数:[“卷展栏”、“重新启动”、“部署/前端部署”]。它具有以下日志输出:
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卷展栏重新启动部署/前端部署时,它会起作用
如何解决此问题?查看,v1.15版本中引入了kubectl卷展栏重新启动
commmand。在您的案例中,云构建似乎使用了一个旧版本,而该命令尚未实现
在做了一些测试之后,云构建似乎使用了kubectl客户端版本,具体取决于集群的服务器版本。例如,运行以下生成时:
steps:
- name: "gcr.io/cloud-builders/kubectl"
args: ["version"]
env:
- "CLOUDSDK_COMPUTE_ZONE=<cluster_zone>"
- "CLOUDSDK_CONTAINER_CLUSTER=<cluster_name>"
步骤:
-名称:“gcr.io/cloud builders/kubectl”
参数:[“版本”]
环境:
-“CLOUDSDK\u计算\u区域=”
-“CLOUDSDK\容器\群集=”
如果集群的主版本是v1.14,云构建将使用v1.14 kubectl客户端,并返回相同的未知命令“restart”
错误消息。当master的版本是v1.15时,cloudbuild使用v1.15kubectl客户机,并且命令成功运行
关于您的案例,我怀疑您的集群“cents ideas”主版本是,您是否尝试将命令仅作为一个参数编写?像args:[“卷展栏重新启动部署/前端部署”]
是的,它不起作用。是否可以将群集版本更新为1.15?是否可以手动升级群集?是的。您应该看看升级是如何工作的。对于GKE,这取决于集群的设置方式。如果您使用的是“发布版本”,您还不能选择1.15,1.14是最新版本。如果您使用的是“发布频道”,则1.15在Rapid频道下可用,而不是常规频道。在我们的GKE集群(带有“Rapid”发布频道)更新为Kubernetes 1.16后,kubectl Rollow restart
停止工作,声称无法识别“restart”命令。还不知道怎么解决。你找到解决办法了吗?在v1.14中,这个命令有其他方法吗?