我正在尝试将更新部署到pods。但是,我希望当前的pod仅在pod内的所有容器都已终止并且它们的进程完成时才终止。
新的pods可以一直等待启动,直到旧pods中的所有容器都完成。我们有一种机制来阻止旧的pod接收新的任务,因此它们最终应该会终止。
如果在某个时间实例中存在两个pod,这是可以的。我试着在kubernetes文档中找到解决方案,但没有成功。关于如何/如果这是可能的的指针将是有帮助的。
发布于 2020-07-16 01:59:27
好吧,我猜您可能必须根据需要使用新镜像创建一个重复类型的部署,并将服务中的选择器更改为新部署,这将防止外部流量进入预先存在的pod,而新的调用可以转到新的pod。然后你就可以检查一下了-
Kubectl top pods -c containers如果负载看起来是静态的和低负载,那么您最好在以后删除旧的pods相关部署。
但对于这件事,每次服务选择器必须更新,并且可能是为了跟踪事情,您可以将git提交散列附加到服务选择器,以使其每次都保持唯一。
但是,如果需要从Kubernetes集群内部回滚到以前的版本,将会很困难,因此您最好再次触发所需的构建。
我希望这是有意义的!
https://stackoverflow.com/questions/62913761
复制相似问题