ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

k8s deployment发布失败回滚

2021-10-29 18:32:39  阅读:145  来源: 互联网

标签:web 回滚 nginx v1 master deployment k8s


1. deployment发布失败回滚

  • 查看历史发布版本

    kubectl rollout history deployment/web
    
  • 回滚上一个版本

    kubectl rollout undo deployment/web
    
  • 回滚历史指定版本

    kubectl rollout undo deployment/web --to-revision=2 
    
  • 注:回滚是重新部署某一次部署时的状态,即当时版本所有配置

  • 示例:yaml配置文件

    [root@k8s-master deployment]# cat web.yaml 
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: web
      namespace: default
      annotations:       # 记录回滚参数
        kubernetes.io/change-cause: "web.v1-nginx-1.19"   #记录到revision中的内容,记录版本号
    spec:
      replicas: 9 # Pod副本预期数量
      revisionHistoryLimit: 10 # RS历史版本保存数量
      selector:
        matchLabels:
          app: web
      strategy:
        rollingUpdate:
          maxSurge: 25%             # 滚动更新过程最大pod副本数
          maxUnavailable: 25%       # 滚动更新过程中最大不可用pod副本数,
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: web # Pod副本的标签
        spec:
          containers:
          - name: web
            image: nginx:1.19
            readinessProbe:          # 健康检查,如果失败,将杀死容器,来重启
              httpGet:
                port: 80
                path: /index.html
              initialDelaySeconds: 10 #启动容器后多少秒健康检查
              periodSeconds: 10 #以后间隔多少秒检查一次
    
            livenessProbe:   # 存活检查,失败就会剔除 service 
              httpGet:
                port: 80
                path: /index.html
    
    
  • 查看history历史记录

    [root@k8s-master deployment]# kubectl rollout history deployment web
    deployment.apps/web 
    REVISION  CHANGE-CAUSE
    1         web.v1-nginx-1.16
    2         web.v1-nginx-1.18
    3         web.v1-nginx-1.19
    

2. 案例操作

  • 查询发布历史版本

    [root@k8s-master deployment]# kubectl rollout history deployment web
    deployment.apps/web 
    REVISION  CHANGE-CAUSE
    1         web.v1-nginx-1.16
    2         web.v1-nginx-1.18
    3         web.v1-nginx-1.19
    
    
    
  • 回滚到上一个版本

    [root@k8s-master deployment]# curl -I http://192.168.0.202:30082
    HTTP/1.1 200 OK
    Server: nginx/1.19.5
    Date: Tue, 01 Dec 2020 14:20:33 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Tue, 24 Nov 2020 13:02:03 GMT
    Connection: keep-alive
    ETag: "5fbd044b-264"
    Accept-Ranges: bytes
    
    # 回滚到上一个版本
    [root@k8s-master deployment]# kubectl rollout  undo deployment web
    deployment.apps/web rolled back
    
    
    [root@k8s-master deployment]# curl -I http://192.168.0.202:30082
    HTTP/1.1 200 OK
    Server: nginx/1.18.0
    Date: Tue, 01 Dec 2020 14:21:39 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT
    Connection: keep-alive
    ETag: "5e9efe7d-264"
    Accept-Ranges: bytes
    
    [root@k8s-master deployment]# kubectl rollout history deployment web
    deployment.apps/web 
    REVISION  CHANGE-CAUSE
    1         web.v1-nginx-1.16
    3         web.v1-nginx-1.19
    4         web.v1-nginx-1.18
    
    • 注释:
      1. 发现已经回滚到nginx版本1.18版本
      2. 我们发现2的版本号,被4的版本号替换,3的版本号是1.19.5的nginx版本
  • 回滚到指定版本

    [root@k8s-master deployment]# kubectl rollout undo deployment web  --to-revision=3 
    deployment.apps/web rolled back
    
    [root@k8s-master deployment]# curl -I http://192.168.0.202:30082
    HTTP/1.1 200 OK
    Server: nginx/1.19.5
    Date: Tue, 01 Dec 2020 14:25:12 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Tue, 24 Nov 2020 13:02:03 GMT
    Connection: keep-alive
    ETag: "5fbd044b-264"
    Accept-Ranges: bytes
    
    [root@k8s-master deployment]# kubectl rollout history deployment web
    deployment.apps/web 
    REVISION  CHANGE-CAUSE
    1         web.v1-nginx-1.16
    4         web.v1-nginx-1.18
    5         web.v1-nginx-1.19
    
    • 注释:在这里,有没有发现,我们上面的实例代码里,进行配置后,版本号记录更改,都有记录

标签:web,回滚,nginx,v1,master,deployment,k8s
来源: https://www.cnblogs.com/scajy/p/15481790.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有