美文网首页
K8S的滚动更新(六)

K8S的滚动更新(六)

作者: 运维之美 | 来源:发表于2019-12-03 19:11 被阅读0次

前言

K8S的滚动更新功能,一次可以更新部分副本,启动一部分pod,停止一部分pod,最后完成所有副本的更新,在升级的过程中,能够保证服务一直在线,达到零停机,保障了业务的稳定性。

1.准备yaml文件

如下httpd2_v1.ymal,httpd2_v2.ymal,httpd2_v3.ymal三个配置文件,分别对应httpd镜像2.4.16,2.4.17,2.4.18
httpd2_v1.ymal

kind: Deployment

metadata:

  name: httpd

spec:

  revisionHistoryLimit: 10

  replicas: 2

  template:

    metadata:

      labels:

        run: httpd

    spec:

      containers:

      - name: httpd

        image: httpd:2.4.16

        ports:

        - containerPort: 80

httpd2_v2.ymal配置文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: httpd
spec:
   revisionHistoryLimit: 10
   replicas: 2
   template:
     metadata:
       labels:
         run: httpd
     spec:
       containers:
       - name: httpd
         image: httpd:2.4.17
         ports:
         - containerPort: 80

httpd2_v3.ymal

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: httpd
spec:
   revisionHistoryLimit: 10
   replicas: 2
   template:
     metadata:
       labels:
         run: httpd
     spec:
       containers:
       - name: httpd
         image: httpd:2.4.18
         ports:
         - containerPort: 80

2.版本更新

分别执行如下命令--record的作用是将当前版本记录到revisionHistory中去,然后我们根据revision历史记录可以去进行版本回滚
kubectl apply -f httpd2_v1.ymal --record
kubectl get replicaset -o wide
kubectl apply -f httpd2_v2.ymal --record
kubectl get replicaset -o wide
kubectl apply -f httpd2_v3.ymal --record
kubectl get replicaset -o wide


image.png

kubectl rollout history deployment httpd -----查看历史版本


image.png
如图REVISION显示的记录id,CHANGE-CAUSE显示的是版本更新的命令

3.版本回滚

kubectl rollout undo deployment httpd --to-revision=1 ----回滚到记录为1的版本,也就是http的2.4.16版本


image.png

再次查看版本记录,也会相应的发生变动


image.png
注:使用版本更新和回滚功能,在kubectl apply时需要加--record参数。

相关文章

  • k8s滚动更新(六)

    实践 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零...

  • K8S的滚动更新(六)

    前言 K8S的滚动更新功能,一次可以更新部分副本,启动一部分pod,停止一部分pod,最后完成所有副本的更新,在升...

  • k8s deployment 滚动更新

    正常来说 k8s 的 deployment 在更新时默认就会进行滚动的升级但是实际操作中会发现,滚动更新过程中应用...

  • K8s 学习笔记1 - 基本应用

    k8s基本信息 创建集群 部署应用 访问应用 scale 应用 滚动更新

  • k8s deployment

    k8s 的更新策略为滚动更新,通过新创建的RS(Replica Set)创建新的pod,等新的pod调度完成显示r...

  • k8s滚动更新时删除pod的规则

    k8s 在弹性缩容或滚动更新时默认的pod删除规则如下: 1 如果pod没分配到节点,先被删除2 如果pod的状态...

  • 理解K8S RollingUpdate

    前言 一直以来,知道K8S具有滚动更新的策略,能支持我们发布的应用实时切换上线,不用停机发布,这个本身也是趋势,但...

  • Kubernetes ( k8s ) 滚动更新 ( Rollin

  • 自从上了K8S,项目更新都不带停机的!

    其实K8S中还有一些高级特性也很值得学习,比如弹性扩缩应用、滚动更新、配置管理、存储卷、网关路由等。今天我们就来了...

  • Kubernetes部署微服务项目踩坑经验分享

    导读本文给你分享我在K8S生产环境上部署微服务项目遇到的问题:1、限制了容器资源,还经常被杀死?2、滚动更新之健康...

网友评论

      本文标题:K8S的滚动更新(六)

      本文链接:https://www.haomeiwen.com/subject/yplhgctx.html