Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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 Kubectl apply不更新POD或部署_Kubernetes_Google Kubernetes Engine_Kubectl - Fatal编程技术网

Kubernetes Kubectl apply不更新POD或部署

Kubernetes Kubectl apply不更新POD或部署,kubernetes,google-kubernetes-engine,kubectl,Kubernetes,Google Kubernetes Engine,Kubectl,每当对图像进行更新时,我都会使用CI来更新kubernetes集群。每当映像被推送并具有最新标记时,kubectl就会应用现有的部署,但不会更新任何内容 这就是我们要做的 $kubectl apply--record--filename/tmp/deployment.yaml 我的目标是在运行apply时执行滚动部署 apiVersion:extensions/v1beta1 种类:部署 元数据: 名称:api 规格: 副本:1份 模板: 元数据: 标签: 应用程序:api 规格: 容器: -名

每当对图像进行更新时,我都会使用CI来更新kubernetes集群。每当映像被推送并具有最新标记时,kubectl就会应用现有的部署,但不会更新任何内容

这就是我们要做的
$kubectl apply--record--filename/tmp/deployment.yaml

我的目标是在运行apply时执行滚动部署

apiVersion:extensions/v1beta1
种类:部署
元数据:
名称:api
规格:
副本:1份
模板:
元数据:
标签:
应用程序:api
规格:
容器:
-名称:api
图片:us.gcr.io/joule-eed41/api:最新版本
imagePullPolicy:始终
端口:
-集装箱港口:1337
args:
-/bin/sh
--c
-echo运行api;npm启动
环境:
-名称:名称空间
价值来源:
configMapKeyRef:
名称:config
键:名称空间

正如其他人所建议的,有一个特定的标签。 使用以下命令设置新图像

kubectl设置映像部署/部署\名称部署\名称=映像\名称:映像\标记

在你的情况下是这样的


kubectl set image deployment/api api=us.gcr.io/joule-eed41/api:0.1

As@ksholla20使用
kubectl set image
对于许多(大多数?)情况是一个很好的选择

但如果不能更改图像标签,请考虑使用:

1)
kubectl卷展栏重新启动部署/
()

2)
kubectl补丁部署-p“{”spec\“:{”template\“:{”metadata\“:{”labels\“:{”version\“:“$CURRENT\u BUILD\u HASH\u OR\u DATE\”}}”
()


(*)请注意,
patch
命令允许您更改部署中的特定属性(或选择的任何其他对象)例如标签选择器和pod标签或其他属性,如示例中的
名称空间
环境变量的值。

YAML文件中有什么?@kichik添加了YAML问题是k8s不知道实际标记的图像已更改。您有两种解决方案:1)删除现有的POD,然后将拉取新版本2)每次使用新版本。@uthark您每次使用新版本是什么意思?@HannanRhodes您的docker图像应该在严格版本下发布,而不是浮动
最新版本。e、 g.0.1、0.2、0.3等。