Toggle navigation
首页
技术
骑行
羽毛球
资讯
联络我
登录
kubernetes无感知部署服务
2018-09-08
kubernetes
> 本文介绍在kubernetes环境下如何不停机部署服务 # kubernetes不是已经支持滚动更新吗,为什么还要讨论这个问题? 虽然kubernetes的deployment可以滚动更新,但是当一个新的pod建立,及旧的pod删除时,如果此时正好有请求到旧的pod,则会被返回一个错误。 # 如何处理? 对于一个即将被删除的pod来说,需要满足如下条件: 1. 不再接收新的请求 2. 已经接收的请求要执行完毕 对于第1点,可以用readinessProbe来解决: ```yaml readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 2 periodSeconds: 1 ``` 对于第2点,可以用preStop来解决: ```yaml lifecycle: preStop: exec: command: - sleep - "10" ``` # 更多的优化 对于需要较长时间来启动的服务来说,可以通过readinessProbe参数来保证服务启动完成之后才开始处理请求,从而避免启动完成之前请求到来而出现错误。 # 参考: * [Zero Downtime Deployments in Kuberentes](https://www.chrismoos.com/2016/09/28/zero-downtime-deployments-kubernetes/)
×
本文为博主原创,如需转载,请注明出处:
http://www.supperxin.com
返回博客列表