Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 云计算构建——”;“重新启动”卷展栏;无法识别(未知命令)_Kubernetes_Google Kubernetes Engine_Google Cloud Build - Fatal编程技术网

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中,这个命令有其他方法吗?