我在通过Kubernetes部署的Docker容器中运行一个.NET Core控制台应用程序。
更新部署镜像时,我希望将现有的Pod保持一段时间,而不接受新的连接,但要使现有的连接保持 Activity 状态一段时间,以使现有的用户能够完成工作。

查看Kubernetes文档,我认为终止宽限期秒数是要添加的属性,但它似乎不起作用。更改部署中列出的镜像后,现有的 pods 将立即删除-不应用宽限期。

有人对我在这种情况下做错什么有任何想法吗?我在文档中看不到任何内容。

下面的我的.yml文件中的位:

spec:
   terminationGracePeriodSeconds: 60
   containers:
       - name: myApplication

最佳答案

宽限期的工作方式是,立即向主docker进程发送SIGTERM信号,然后在更强制关闭之前允许其有一定时间自行退出。如果您的应用立即退出,那是因为它在收到此信号后便退出了。

您的应用可以捕获SIGTERM信号,然后在所有打开操作完成后自行退出。或者它可以捕获SIGTERM信号,而什么也不做,然后等待它以其他方式被压低。

关于.net - 并非第二个终止GracePeriodSeconds,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50627308/

10-15 23:07