我的应用程序作为具有 1 个副本的部署运行。
当我执行时kubectl rollout restart deployment my-app
,它首先启动新的 pod,等待它准备好,然后删除旧的 pod。这提供了零停机重新启动,同时保留单个副本。
然而,当某些东西(例如集群自动缩放器或节点耗尽)决定从节点中驱逐 pod 时,它会立即删除 pod。新的 Pod 被安排在新节点上,但是需要一些时间来拉取镜像、启动容器、初始化应用程序。在此期间,有一个停机时间。
问题是:当 pod 从节点被逐出时,是否有可能以某种方式实现零停机重启?我希望它的工作方式与推出重启类似:在不同的节点上启动新的 Pod,等待它准备好,然后删除被逐出的 Pod。