K8S学习之基础十六:k8s中Deployment更新计谋

打印 上一主题 下一主题

主题 1557|帖子 1557|积分 4673

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
滚动更新
滚动更新是一种自动化程度较高的发布方式、用户体验比力平滑、是现在成熟型技术构造接纳的主流发布方式,一次滚动发布一般有若干发布批次组成,每批的数量一般都是可配置的,可通过发布模板定义,比方第一批10%,第二批30%,第三批60%,第四批40%。每个批次之间保存观察隔断,通过手工验证或监控反馈确保没有题目再发下一批次。所以总体上滚动发布的过程是比力迟钝的。
默认的更新计谋 maxSurge: 25%    maxUnavailable: 25%
  1. vi deploy-demo.yaml
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5.   name: myapp-v1
  6. spec:
  7.   replicas: 10
  8.   selector:
  9.     matchLabels:
  10.       app: myapp
  11.       version: v1
  12.   template:
  13.     metadata:
  14.       labels:
  15.         app: myapp
  16.         version: v1
  17.     spec:
  18.       containers:
  19.       - name: myapp
  20.         image: 172.16.80.140/myapp/myapp:v1
  21.         imagePullPolicy: IfNotPresent
  22.         ports:
  23.         - containerPort: 80
复制代码


将yaml中的版本修改为v2,重新应用,会发现生成一个新的rs,按照滚动计谋举行更新pod,最终所有的pod都跟更新为新的版本,老的rs停用

  查看新的pod,哀求的效果与之前版本不同,说明已经更新为新的版本

查看历史版本
kubectl rollout history deployment myapp-v1

版本回滚,pod又恢复成v1版本
kubectl rollout history undo deployment/myapp-v1 --to-revision=1 

自定义更新计谋
yaml中配置maxSurge和maxUnavailable的值,两者不能同时为0
maxSurge==1  maxUnavailable  增长一个删除一个,速率较慢
也可以通过patch更新:
kubectl patch deployment myapp-v1 -p '{"spec":{"strategy":{"rollingUpdate": {"maxSurge":1,"maxUnavailable":1}}}}' 

kubectl describe deployment myapp-v1 | grep RollingUpdateStrategy

更新计谋默认是RollingUpdate,还有一种Recreata,把所有的pod都删掉重新创建,如下图,假如没有红框内容,默认RollingUpdate更新计谋,假如有红框内容,更新计谋改为Recreate


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表