问题描述
我在 Kubernetes 中部署了一个应用程序。我正在使用 Istio 服务网格。当发生特定错误时,需要重新启动我的一项服务。这是使用 Istio 可以实现的吗?
我不想使用 cronjob。此外,让应用程序自行重启似乎是一种反模式。
该应用程序是一个带有 fastify 的 node js 应用程序。
解决方法
Istio 是一个网络连接工具。当 David Maze 在评论中非常正确地提及时,我正在创建此答案:
Istio 与此完全无关。另一种方法是使用 Kubernetes liveness probe,如果集群可以检测到 pod 不可达;但如果您要为代码添加活性挂钩,则the Kubernetes documentation also endorses just crashing 会出现不可恢复的故障。
kubelet 使用活性探针来了解何时重新启动容器。例如,活性探测器可能会捕捉到一个应用程序正在运行但无法取得进展的死锁。在这种状态下重新启动容器有助于提高应用程序的可用性,尽管存在错误。
另见: