Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 有没有办法让kubectl重新启动映像标签未更改的部署?_Kubernetes_Bazel_Minikube - Fatal编程技术网

Kubernetes 有没有办法让kubectl重新启动映像标签未更改的部署?

Kubernetes 有没有办法让kubectl重新启动映像标签未更改的部署?,kubernetes,bazel,minikube,Kubernetes,Bazel,Minikube,我有一个本地部署系统,它正在镜像我们的生产系统。两者都是通过调用kubectl apply-f deployments-and-services.yaml来部署的 我用当前的git哈希标记所有构建,这意味着对于GKE的clean部署,所有服务都有一个新的docker映像标记,这意味着apply将重新启动它们,但在minikube本地,标记通常不会更改,这意味着新代码不会运行。在此之前,我通过调用kubectl delete和kubectl create来解决这个问题,然后将其部署到minikub

我有一个本地部署系统,它正在镜像我们的生产系统。两者都是通过调用kubectl apply-f deployments-and-services.yaml来部署的

我用当前的git哈希标记所有构建,这意味着对于GKE的clean部署,所有服务都有一个新的docker映像标记,这意味着apply将重新启动它们,但在minikube本地,标记通常不会更改,这意味着新代码不会运行。在此之前,我通过调用kubectl delete和kubectl create来解决这个问题,然后将其部署到minikube,但随着我部署的服务数量的增加,这开始将开发周期延长得太久

理想情况下,我希望有一种更好的方法告诉kubectl apply重新启动部署,而不是仅仅依赖于标签

我很好奇人们是如何处理这个问题的

此外,我正在用bazel构建所有东西,这意味着我必须非常明确地设置构建命令。我在想,也许我应该切换到只删除/创建我正在使用的一个服务,而让其他服务继续运行


但是在这种情况下,也许我应该看看远程呈现,然后一起运行我在minikube之外开发的服务?这里的最佳实践是什么?

我不能完全肯定我理解了你的问题,但这很可能是我的阅读理解:) 在任何情况下,在阅读本文时都会出现一些想法(同样也不确定你想要实现什么)

选项1:可能您正在寻找的是缩小和备份,也就是说,将部署缩小到0,然后进行备份,因为您使用的是configmap,并且可能您只想更新它,所以命令应该是
kubectl scale--replicas=0-f foo.yaml
,然后返回到任何位置

选项2:例如,如果您想应用部署而不杀死任何POD,您可以使用
cascade=false
(谷歌it)

选项3:查找
卷展栏
选项以管理部署,但不确定它是否适用于服务


最后,这只是我要说的,分享更多的细节,比如你使用的是哪个版本的k8s?也许可以提供一个实际的用例示例来更好地描述这个问题。

Kubernetes,只有在某些内容发生更改时才会触发部署,如果您的映像拉取策略始终为,则您可以删除播客以获取新映像,如果希望kube处理部署,可以将kubernetes yaml文件更新为一个不断变化的元数据字段(我使用自epoch以来的秒数),这将触发一个变化。理想情况下,您应该使用CI/CD管道中的唯一标记标记图像,并使用构建图像的提交引用。这解决了这个问题,并允许您充分利用kubernetes回滚特性