Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes吊舱在发生故障时执行一些操作_Kubernetes_Monitoring_Prometheus_Kubernetes Pod - Fatal编程技术网

Kubernetes吊舱在发生故障时执行一些操作

Kubernetes吊舱在发生故障时执行一些操作,kubernetes,monitoring,prometheus,kubernetes-pod,Kubernetes,Monitoring,Prometheus,Kubernetes Pod,如果某个pod出现故障,我需要执行sql查询。我希望根据该pod的主机名更新数据库中的记录,如何才能实现这一点?有什么方法可以做到这一点?您可以在应用程序代码中实现一个处理程序,该处理程序处理SIGTERM信号,并在数据库中创建一个条目。kubernetes将SIGTERM信号发送到运行pod,然后在terminationGracePeriodSeconds提到的宽限期之后发送SIGKILL 作为一种更安全的替代方法,您可以将此责任转移给另一个应用程序,该应用程序定期轮询另一个应用程序公开的健康

如果某个pod出现故障,我需要执行sql查询。我希望根据该pod的主机名更新数据库中的记录,如何才能实现这一点?有什么方法可以做到这一点?

您可以在应用程序代码中实现一个处理程序,该处理程序处理
SIGTERM
信号,并在数据库中创建一个条目。kubernetes将
SIGTERM
信号发送到运行pod,然后在
terminationGracePeriodSeconds
提到的宽限期之后发送
SIGKILL


作为一种更安全的替代方法,您可以将此责任转移给另一个应用程序,该应用程序定期轮询另一个应用程序公开的健康检查终结点。健康检查终结点可以公开应用程序的主机名。当运行状况检查失败时,输入数据库。

是否要在正在删除的pod内部运行SQL查询(风险…)或(希望)在外部运行?在pod外部,DB不在任何pod上您的环境将在云或本地环境中?您使用的是什么k8s版本。Arghya Sadhu的回答解决了你的问题吗?在SIGTERM的情况下,我不认为它会解决强制关机问题,对吗?是的,强制关机不被考虑…在这种情况下,替代方法更安全,但替代方法在我们的情况下不起作用,因为吊舱是负载平衡的,不鼓励直接连接到吊舱。你可以做推送基于应用程序周期性地推送心跳,而不是其他应用程序连接和拉取信息的方式。正确的想法只是想看看kubernetes是否能在这里帮助我