• 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

  • 相关阅读:
    乐观锁配置
    @NotBlank注解地正确使用
    Navicat Premium 12.1手动激活
    nacos将服务注册到命名空间
    springcloud中微服务远程调用
    常用的运算符的操作
    时间复杂度和空间复杂度
    前后端分离跨域问题cors
    数据库迁移on_delete 以及NodeNotFoundError问题解决
    python去重后保证顺序不变
  • 原文地址:https://www.cnblogs.com/xmc2017/p/11384144.html
Copyright © 2020-2023  润新知