zoukankan      html  css  js  c++  java
  • k8s 回滚应用

      kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision。

    滚动更新是一次只更新一小部分,成功后再更新更多的副本,最终完成所有副本的更新。滚动更新最大的好处是零停机,整个更新过程始终有副本在运行,从而保证业务的连续性。

    在Deployment 配置文件中通过revisionHistoryLimit 属性配置revison数量

    下面实践回滚功

    三个配置文件  httpd.v1.ym,httpd.v2.yml, httpd.v3.yml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: httpd
      annotations:
         kubernetes.io/change-cause: "httpd.v1"  #记录到revision中的内容
    spec:
      revisionHistoryLimit: 10      #保留最近10个revision
      replicas: 2
      template:
        metadata:
          labels:
            run: httpd
        spec:
          containers:
          - name: httpd
            image: httpd
            ports:
            - containerPort: 80
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: httpd  
      annotations:
         kubernetes.io/change-cause: "httpd.v2" 
    spec:
      revisionHistoryLimit: 10
      replicas: 2
      template:
        metadata:
          labels:
            run: httpd
        spec:
          containers:
          - name: httpd
            image: httpd:2
            ports:
            - containerPort: 80
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: httpd
      annotations:
         kubernetes.io/change-cause: "httpd.v3"  #记录到revision中的内容
    spec:
      revisionHistoryLimit: 10      #保留最近10个revision
      replicas: 2
      template:
        metadata:
          labels:
            run: httpd
        spec:
          containers:
          - name: httpd
            image: httpd:2.4
            ports:
            - containerPort: 80

    更新应用

    --record 的作用是将当前命令记录到 revision 记录中,这样我们就可以知道每个 revison 对应的是哪个配置文件。

    不想在命令行加的话就要在配置文件中添加

     annotations:
         kubernetes.io/change-cause: "httpd.v3"  #记录到revision中的内容

    通过 kubectl rollout history deployment httpd 查看 revison 历史记录。

    CHANGE-CAUSE 就是 --record 的结果。

     如果要回滚到某个版本,比如 revision 1,可以执行命令 :

    kubectl rollout undo deployment httpd --to-revision=1

    通过查看历史 revision 由3版本变成4版本 ,其实这个4版本对应的就是之前的1版本

    参考

    https://www.cnblogs.com/benjamin77/p/9936543.html

  • 相关阅读:
    SWFUpload说明文档
    Ubuntu中root用户和user用户的相互切换
    不用IF比较两数大小
    Linux服务器下验证码图片不显示问题
    常用CSS语法
    常用CSS语法
    漫谈DataList的用法
    Session丢失浅析
    浅谈C#托管程序中的资源释放问题
    C#2.0 泛型详解
  • 原文地址:https://www.cnblogs.com/xmc2017/p/11384144.html
Copyright © 2011-2022 走看看