Kubernetes吊舱在发生故障时执行一些操作
如果某个pod出现故障,我需要执行sql查询。我希望根据该pod的主机名更新数据库中的记录,如何才能实现这一点?有什么方法可以做到这一点?您可以在应用程序代码中实现一个处理程序,该处理程序处理Kubernetes吊舱在发生故障时执行一些操作,kubernetes,monitoring,prometheus,kubernetes-pod,Kubernetes,Monitoring,Prometheus,Kubernetes Pod,如果某个pod出现故障,我需要执行sql查询。我希望根据该pod的主机名更新数据库中的记录,如何才能实现这一点?有什么方法可以做到这一点?您可以在应用程序代码中实现一个处理程序,该处理程序处理SIGTERM信号,并在数据库中创建一个条目。kubernetes将SIGTERM信号发送到运行pod,然后在terminationGracePeriodSeconds提到的宽限期之后发送SIGKILL 作为一种更安全的替代方法,您可以将此责任转移给另一个应用程序,该应用程序定期轮询另一个应用程序公开的健康
SIGTERM
信号,并在数据库中创建一个条目。kubernetes将SIGTERM
信号发送到运行pod,然后在terminationGracePeriodSeconds
提到的宽限期之后发送SIGKILL
作为一种更安全的替代方法,您可以将此责任转移给另一个应用程序,该应用程序定期轮询另一个应用程序公开的健康检查终结点。健康检查终结点可以公开应用程序的主机名。当运行状况检查失败时,输入数据库。是否要在正在删除的pod内部运行SQL查询(风险…)或(希望)在外部运行?在pod外部,DB不在任何pod上您的环境将在云或本地环境中?您使用的是什么k8s版本。Arghya Sadhu的回答解决了你的问题吗?在SIGTERM的情况下,我不认为它会解决强制关机问题,对吗?是的,强制关机不被考虑…在这种情况下,替代方法更安全,但替代方法在我们的情况下不起作用,因为吊舱是负载平衡的,不鼓励直接连接到吊舱。你可以做推送基于应用程序周期性地推送心跳,而不是其他应用程序连接和拉取信息的方式。正确的想法只是想看看kubernetes是否能在这里帮助我