我的应用程序在启动时加载数据所以我需要重新启动应用程序来更改数据 .
数据从Oracle模式加载,可以由其他应用程序更改 .
如果数据已更改,则应用程序将部分正常运行,需要重新启动 .
Requirement :重启应该在没有停机的情况下自动完成(旧的吊舱应该被杀死,当新的通过准备就绪检查时) .
如何满足这一要求?
Notes :
-
我真的想用liveness probe来检查一些带 Health 检查的URL . Issue :AFAIK活体探测器会在检查失败后立即杀死pod . 因此所有pod将同时被杀死,这会导致启动时停机 .
-
滚动部署可以达到所需的行为 . 但是我不想手动执行它 .
-
为了简单起见,我不想在pod操作期间实现加载数据:它只能在启动期间加载数据 . 如果pod状态不是完全正常,则会终止并重新创建 .
1 回答
我可以想到的两种方式: - 使用状态集,pod将按顺序重新启动并以相反的顺序终止 . - 您可以使用部署的spec.strategy.type = RollingUpgrade并将其与maxUnavailable配对为大于1 .
.spec.strategy.rollingUpdate.maxUnavailable