我有一个包含多个独立组件的程序。
在所有组件中添加一个活跃度探测器是很简单的,但是拥有一个 * 单个 * 活跃度探测器来确定程序所有组件的健康状况并不容易。
如何让kubernetes查看多个活动探测器,并在其中任何一个失效时重新启动容器?
我知道这可以通过添加更多软件来实现,例如一个额外的bash脚本来执行活动性检查,但我正在寻找一种原生的方法来完成这项工作。
1我所说的独立性是指一个组件的故障不会导致其他组件的故障。
我有一个包含多个独立组件的程序。
在所有组件中添加一个活跃度探测器是很简单的,但是拥有一个 * 单个 * 活跃度探测器来确定程序所有组件的健康状况并不容易。
如何让kubernetes查看多个活动探测器,并在其中任何一个失效时重新启动容器?
我知道这可以通过添加更多软件来实现,例如一个额外的bash脚本来执行活动性检查,但我正在寻找一种原生的方法来完成这项工作。
1我所说的独立性是指一个组件的故障不会导致其他组件的故障。
3条答案
按热度按时间7xzttuei1#
Kubernetes API允许每个应用程序(部署/ POD)有一个活动性和一个就绪性。我建议创建一个具有端点休息的验证集中服务:
或者尝试对同一个任务进行一次猛击,例如:
liveness.sh
回顾消息处理可以在所讨论的故障事件中看到的内容:“警告不健康Pod活动探测失败:什么都没发生!”
希望这能帮上忙
tvz2xvvm2#
它不这样做,模型很简单,每个容器一个探测器,遵循失败时重启策略。
理解传统应用的容器设计问题,但是为了兼容传统应用,确实有很多方法可以安排资源共享。如果这个系统的组件已经是不同的进程,那么应该有一种方法可以将它们划分到容器中。
如果组件是线程或其他一些应用程序内部模块化技术,那么活动性的确定就必须来自应用程序内部。
dxxyhpgq3#
对于这种情况,创建自定义脚本,根据需求处理多个情况,并为容器给予单个输出作为就绪响应。这将被视为Kubernetes生命周期管理的最终决策