CKA-Lab 28 Deployment升级软件版本与回退
创始人
2025-05-31 17:43:27
0

文章目录

  • 场景:
  • 1. 创建示例环境
  • 2. 升级版本
    • 2.1 edit 配置文件的第37行,改为指定版本
  • 3. 回退版本
    • 3.1 查看历史版本信息
    • 3.2 查看需要回退到的版本信息
    • 3.3 查看历史版本1的详细信息
    • 3.4 执行回退命令
  • 结论:

场景:

我们在做部署软件的时候经常会遇到软件升级与回退。

1. 创建示例环境

根据k8s 官网示例,创建一个yaml文件
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80

创建deployment 实例

root@k8s-master:~# kubectl create -f label28.yaml
deployment.apps/nginx-deployment created
root@k8s-master:~# kubectl get deployments.apps
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           14s
root@k8s-master:~# kubectl get deployments.apps -o wide
NAME               READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR
nginx-deployment   3/3     3            3           21s   nginx        nginx:1.14.2   app=nginx

ouput:
在这里插入图片描述
升级软件版本
将 nginx:1.14.2 升级到 1.21.6

2. 升级版本

2.1 edit 配置文件的第37行,改为指定版本

root@k8s-master:~# kubectl edit deployments.apps nginx-deployment
deployment.apps/nginx-deployment edited

在这里插入图片描述
ouput:
在这里插入图片描述
从结果可以看出nginx已经升级成功

3. 回退版本

如果升级的版本有问题,经常会有回退的动作

3.1 查看历史版本信息


root@k8s-master:~# kubectl rollout history deployment nginx-deployment --show-managed-fields
deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
1         
2         root@k8s-master:~# kubectl rollout history deployment nginx-deployment --revision 1
deployment.apps/nginx-deployment with revision #1
Pod Template:Labels:       app=nginxpod-template-hash=6595874d85Containers:nginx:Image:      nginx:1.14.2Port:       80/TCPHost Port:  0/TCPEnvironment:        Mounts:     Volumes:      root@k8s-master:~# kubectl rollout history deployment nginx-deployment --revision 2
deployment.apps/nginx-deployment with revision #2
Pod Template:Labels:       app=nginxpod-template-hash=6494477f49Containers:nginx:Image:      nginx:1.21.6Port:       80/TCPHost Port:  0/TCPEnvironment:        Mounts:     Volumes:      

3.2 查看需要回退到的版本信息

查看当前版本信息,现在需要从当前版本2回退到版本1.


root@k8s-master:~# kubectl describe deployments.apps nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Mon, 20 Mar 2023 04:39:37 +0800
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 2
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:Labels:  app=nginxContainers:nginx:Image:        nginx:1.21.6Port:         80/TCPHost Port:    0/TCPEnvironment:  Mounts:       Volumes:        
Conditions:Type           Status  Reason----           ------  ------Available      True    MinimumReplicasAvailableProgressing    True    NewReplicaSetAvailable
OldReplicaSets:  
NewReplicaSet:   nginx-deployment-6494477f49 (3/3 replicas created)
Events:Type    Reason             Age   From                   Message----    ------             ----  ----                   -------Normal  ScalingReplicaSet  19m   deployment-controller  Scaled up replica set nginx-deployment-6595874d85 to 3Normal  ScalingReplicaSet  13m   deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 1Normal  ScalingReplicaSet  13m   deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 2Normal  ScalingReplicaSet  13m   deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 2Normal  ScalingReplicaSet  13m   deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 1Normal  ScalingReplicaSet  13m   deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 3Normal  ScalingReplicaSet  13m   deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 0
root@k8s-master:~#

3.3 查看历史版本1的详细信息

root@k8s-master:~# kubectl rollout history deployment nginx-deployment --revision=1
deployment.apps/nginx-deployment with revision #1
Pod Template:Labels:       app=nginxpod-template-hash=6595874d85Containers:nginx:Image:      nginx:1.14.2Port:       80/TCPHost Port:  0/TCPEnvironment:        Mounts:     Volumes:      

3.4 执行回退命令

root@k8s-master:~# kubectl rollout undo deployment nginx-deployment --to-revision=1
deployment.apps/nginx-deployment rolled back
root@k8s-master:~# k describe deployments.apps nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Mon, 20 Mar 2023 05:08:59 +0800
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 3
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:Labels:  app=nginxContainers:nginx:Image:        nginx:1.14.2Port:         80/TCPHost Port:    0/TCPEnvironment:  Mounts:       Volumes:        
Conditions:Type           Status  Reason----           ------  ------Available      True    MinimumReplicasAvailableProgressing    True    NewReplicaSetAvailable
OldReplicaSets:  
NewReplicaSet:   nginx-deployment-6595874d85 (3/3 replicas created)
Events:Type    Reason             Age              From                   Message----    ------             ----             ----                   -------Normal  ScalingReplicaSet  5m19s            deployment-controller  Scaled up replica set nginx-deployment-6595874d85 to 3Normal  ScalingReplicaSet  4m37s            deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 1Normal  ScalingReplicaSet  4m36s            deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 2Normal  ScalingReplicaSet  4m36s            deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 2Normal  ScalingReplicaSet  4m35s            deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 1Normal  ScalingReplicaSet  4m35s            deployment-controller  Scaled up replica set nginx-deployment-6494477f49 to 3Normal  ScalingReplicaSet  4m34s            deployment-controller  Scaled down replica set nginx-deployment-6595874d85 to 0Normal  ScalingReplicaSet  8s               deployment-controller  Scaled up replica set nginx-deployment-6595874d85 to 1Normal  ScalingReplicaSet  7s               deployment-controller  Scaled down replica set nginx-deployment-6494477f49 to 2Normal  ScalingReplicaSet  5s (x4 over 7s)  deployment-controller  (combined from similar events): Scaled down replica set nginx-deployment-6494477f49 to 0
root@k8s-master:~# kubectl rollout history deployment nginx-deployment
deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
2         
3         

output:

在这里插入图片描述

结论:

可以看到这里执行版本回退之后,之前的版本1被版本3替代了。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...