k8s 如何利用terminationGracePeriodSeconds 优雅地关闭你的服务?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s 如何利用terminationGracePeriodSeconds 优雅地关闭你的服务?相关的知识,希望对你有一定的参考价值。
参考技术A 什么是 terminationGracePeriodSeconds?解释这个参数之前,先来回忆一下K8S滚动升级的步骤:
1.K8S首先启动新的POD
2.S等待新的POD进入Ready状态
3.K8S创建Endpoint,将新的POD纳入负载均衡
4.K8S移除与老POD相关的Endpoint,并且将老POD状态设置为Terminating,此时将不会有新的请求到达老POD
5.同时 K8S 会给老POD发送SIGTERM信号,并且等待 terminationGracePeriodSeconds 这么长的时间。(默认为30秒)
6.超过terminationGracePeriodSeconds等待时间后, K8S 会强制结束老POD
看到这里,我想大家应该明白了,terminationGracePeriodSeconds 就是K8S给你程序留的最后的缓冲时间,来处理关闭之前的操作。
或许你会问,如果不配置或者不处理这个,有什么问题?
假象一下下面的场景:
既然知道可能带来的问题了,那么怎么解决呢?
明白这个参数的意义,那就很好解决了。
https://damoshushu.github.io/2019/01/12/k8s-terminationGracePeriodSeconds/
以上是关于k8s 如何利用terminationGracePeriodSeconds 优雅地关闭你的服务?的主要内容,如果未能解决你的问题,请参考以下文章
利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
利用Dockerfile自定义镜像-图解轻松学Docker&K8S