kubernetes 滚动更新
admin
2023-04-10 09:03:29
0

示例:

创建一个app:
kubectl create deployment nginx --image=nginx:1.11

创建service
kubectl expose deployment nginx --port=80 --type=NodePort

扩缩容:
kubectl scale deployment nginx --replicas=5

修改镜像,滚动更新:
kubectl set image deployment nginx nginx=nginx:1.10

或者
kubectl edit deployment/nginx

查看更新状态:
kubectl rollout status deployment nginx

终止升级
kubectl rollout pause deployment/nginx

继续升级
kubectl rollout resume deployment/nginx

回滚
kubectl rollout undo deployment/nginx

回滚到指定版本
kubectl rollout undo deployment/nginx --to-revision=2

查看滚动版本:
kubectl rollout history deployment nginx

查看信息:
kubectl describe deployment/nginx

几个重要参数说明
maxSurge与maxUnavailable
maxSurge: 1 表示滚动升级时会先启动1个pod
maxUnavailable: 1 表示滚动升级时允许的最大Unavailable的pod个数
由于replicas为3,则整个升级,pod个数在2-4个之间

terminationGracePeriodSeconds
k8s将会给应用发送SIGTERM信号,可以用来正确、优雅地关闭应用,默认为30秒。

如果需要更优雅地关闭,则可以使用k8s提供的pre-stop lifecycle hook 的配置声明,将会在发送SIGTERM之前执行。

livenessProbe与readinessProbe
livenessProbe是kubernetes认为该pod是存活的,不存在则需要kill掉,然后再新启动一个,以达到replicas指定的个数。
readinessProbe是kubernetes认为该pod是启动成功的,这里根据每个应用的特性,自己去判断,可以执行command,也可以进行httpGet。比如对于使用java web服务的应用来说,并不是简单地说tomcat启动成功就可以对外提供服务的,还需要等待spring容器初始化,数据库连接连接上等等。对于spring boot应用,默认的actuator带有/health接口,可以用来进行启动成功的判断。

其中readinessProbe.initialDelaySeconds可以设置为系统完全启动起来所需的最少时间,livenessProbe.initialDelaySeconds可以设置为系统完全启动起来所需的最大时间+若干秒。

相关内容

热门资讯

190元榴莲遭“仅退款”,卖家... 近日,河南榴莲卖家程先生驱车1600公里跨省维权引发舆论关注。买家收到190元榴莲后,以“发霉”为由...
日本恩格尔系数创1980年以来... 日本总务省12日公布的数据显示,反映家庭消费支出中食品支出占比的“恩格尔系数”在2025年度达到28...
特朗普时隔9年再访华,回顾中美... 澎湃新闻记者 彭玉洁
特朗普要来了,我们且淡定 世间大事,从来都是于风云变幻中悄然落笔,于相逢相聚时定格走向。接下来几天的北京,将格外热闹。我们已正...
“蔡英文御用设计师”靠标案捞钱... 海峡导报综合报道 台电换掉书法名家于右任的“台湾电力公司”草书LOGO(标志),换成亲绿设计师聂永真...
客厅墙面受潮鼓起怎么修复 1、如果想要修补墙面鼓包,首先需要将鼓包的地方全部铲除干净,露出里面的水泥墙。接下来可以用树脂的填料...
客厅地面如何翻新 1、假如是由于灰尘污染等而导致家里地砖陈旧的话,那么应该使用清洁剂把污渍清洗掉。若地砖边缘很黑的话,...
led灯维修大概多少钱 LED 灯维修的费用取决于多种因素,包括灯具的类型、故障的性质和严重程度、维修服务的提供商以及所在地...
卫生间美缝脱了会漏水吗 现在很多装修家庭都喜欢在卫生间的地面上涂一些美缝剂,这些美缝剂不仅可以起到一个美观的效果,而且能起到...