(开始之前,我在Windows 10上使用minikube v27。)
我使用nginx'hello world'容器创建了一个部署,期望数量为2:
我实际上进入了“ 2小时”旧容器,并将index.html文件从欢迎消息中编辑为“损坏”-我想和k8s一起玩,看一看如果一个容器“有故障”的样子
如果我将此部署扩展到更多实例,然后再次缩减,则几乎可以预期k8会删除最旧的Pod,但始终会删除最新的pod:
我如何使其首先移除最旧的豆荚?
(理想情况下,我想说的是“如果可以的话,将所有内容重新部署为在滚动部署中具有完全相同的版本/图像/所需数量”)
答案 0 :(得分:4)
Pod删除首选项基于一系列有序检查,在此处的代码中定义:
https://github.com/kubernetes/kubernetes/blob/release-1.11/pkg/controller/controller_utils.go#L737
总结-删除豆荚的优先级:
这些检查不能直接配置。
根据规则,如果您可以使旧的Pod尚未准备好,或者使旧的Pod重新启动,则它将在缩小时被删除,然后再准备好尚未重启的新Pod。 >
围绕用例来控制删除优先级的能力进行了讨论,其中主要涉及工作和服务混合的工作负载,在这里: