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

  • 相关阅读:
    面向对象高级
    面向对象基础总结
    面向对象基础剩余
    组合和封装
    继承与派生
    面向对象
    4.10
    4.9
    常用模块
    【转】CentOS: 开放80、22、3306端口操作
  • 原文地址:https://www.cnblogs.com/xmc2017/p/11384144.html
Copyright © 2011-2022 走看看