博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kubernetes 滚动更新
阅读量:6948 次
发布时间:2019-06-27

本文共 1368 字,大约阅读时间需要 4 分钟。

示例:

创建一个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可以设置为系统完全启动起来所需的最大时间+若干秒。

转载于:https://blog.51cto.com/devops9527/2324817

你可能感兴趣的文章
关于c语言面试题--宏定义1.2
查看>>
Node之http填坑(2)
查看>>
计算机英语.net 后端
查看>>
Win7 Wifi和安卓端连接
查看>>
javascript学习笔记10-13章
查看>>
Python实战之Oracle数据库操作
查看>>
node读取文件转换json文件
查看>>
php网址显示excel表格内容
查看>>
HDU - 1874 畅通工程续(迪杰斯特拉)
查看>>
线段树 适合初学者
查看>>
go语言中的文件创建,写入,读取,删除
查看>>
jqGrid基本使用
查看>>
9.27作业
查看>>
驱动程序中使用SEH
查看>>
存储类(作用域、链接、存储时期)
查看>>
jsonp跨域请求
查看>>
OpenGL根据极坐标参数方程绘制心形线、螺旋线等图形
查看>>
通达OA2008从windows环境移植到linux部署手册
查看>>
CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9
查看>>
zabbix系列(五)zabbix3.0.4 探索主机Discovery自动发现主机详细图文教程
查看>>