在关闭服务前,在服务内部以做完该做的事情,使得服务得以善终。
在容器化的时代,现在的部署更新,几乎都是透过image版本更新的方式。
本篇文章重点不在於如何实作graceful shutdown
如有想了解的大大 可以参考 热血奶爸v0.0.1的实作文章
为何我说graceful shutdown很重要,如果在k8s当发生服务逻辑有bug时,
helm指令
helm rollback -n ${NAMESPACE} ${RELEASE-NAME} ${REVISION}
或是kubectl指令
kubectl rollout undo daemonset <daemonset-name> --to-revision=<revision>
这时候目前还在运行的Pod会收到关机讯号,当服务有时做graceful shutdown时,可以尽可能地把该做的事情做完然後关机,新的服务可以无痛衔接起来,这时执行部署撤退动作的人员就只需专注於Pod是否完全rollback完成,然後进行各式各样的例行通知作业,不用再让执行人员担心资料或服务是否还有问题,以大幅减轻执行人员的压力。
另外还有graceful startup 在服务启动前做完该做的检查後,才会正式对外说:「我准备好了,可以开始服务大家了!」,这也是很重要的,重点就在於对於服务生命周期的管理与设计,而实作方式大家可以参考Evelyn_Chen去年的文章-day 10 Pod(3)-生命周期, 容器探测。
>>: [CSS] Flex/Grid Layout Modules, part 5
在这篇文章中,将会介绍 React 提供的 Profiler API。 介绍 React Profi...
嗨~今天又见面了,昨天我们了解了Evnet Handing後我们今天要继续来讲条件渲染v-if、v-...
当我们在Chrome的console视窗键入如下程序码,执行一个say()的函式,除了consol...
因为我没什麽用到 Class,这一篇会笔记 ES6 Class 的使用, 下一篇才会进到 Type...
闭包(closure)大概是我在函式这个单元过後,卡的稍微久一点的一个关卡,主要是弄不清楚闭包到底跟...