Docker Kubernetes 容器更新与回滚

环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

创建环境:

  • 1、Deployment名称:nginx-deployment
  • 2、pods副本数为:3 
  • 3、image镜像:nginx1.9

更新升级

方案一:管理节点:滚动升级镜像。

kubectl set image deployment nginx-deployment nginx=nginx:1.11
kubectl set image 资源类型/资源名称 容器名称=镜像版本

命令注解

方案二:管理节点:修改原yaml配置文件重新加载完成滚动升级

kubectl apply -f nginx-deployment.yaml

管理节点:查看升级情况

命令:kubectl describe deployment nginx-deployment

# 镜像已更新
Image: nginx:1.11
Type Reason Age From Message
---- ------ ---- ---- -------
# 扩容版本
Normal ScalingReplicaSet 24m deployment-controller Scaled up replica set nginx-deployment-845cfc7fb9 to 3
Normal ScalingReplicaSet 49s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 1
# 缩容版本
Normal ScalingReplicaSet 34s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 2
# 扩容版本
Normal ScalingReplicaSet 34s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 2
# 缩容版本
Normal ScalingReplicaSet 18s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 1
# 扩容版本
Normal ScalingReplicaSet 18s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 3
# 缩容版本
Normal ScalingReplicaSet 15s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 0

查看deployment镜像升级描述信息

命令:kubectl rollout status deployment/nginx-deployment
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 old replicas are pending termination...
deployment "nginx-deployment" successfully rolled out

实时观察发布状态:

命令:kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment"
REVISION CHANGE-CAUSE
1 <none>
2 <none>

查看deployment历史修订版本

命令:kubectl rollout history deployment/nginx-deployment --revision=1

deployments "nginx-deployment" with revision #
Pod Template:
Labels: app=nginx
pod-template-hash=4017973965
Containers:
nginx:
Image: nginx:1.10
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>

查看指定历史修订版本


版本回滚

管理节点:回滚到上一个版本

kubectl rollout undo deployment nginx-deployment
kubectl rollout undo 资源类型 资源名称

命令注解

管理节点:指定版本回滚

kubectl rollout undo deployment/nginx-deployment --to-revision=3
kubectl rollout undo 资源类型 资源名称 --to-revision=版本号

注:kubectl rollout history 资源类型 资源名称 查看的版本号。

命令注解

管理节点:查看回滚情况

命令:kubectl rollout history deployment/nginx-deployment

deployments "nginx-deployment"
REVISION CHANGE-CAUSE
1 <none>
2 <none>
4 <none>
5 <none>
注:将还原版本覆盖,并生成新的版本号。

查看deployment历史修订版本

Docker Kubernetes 容器更新与回滚的更多相关文章

  1. Kubernetes:更新与回滚

    Blog:博客园 个人 除了创建,Deployment 提供的另一个重要的功能就是更新应用,这是一个比创建复杂很多的过程.想象一下在日常交付中,在线升级是一个很常见的需求,同时应该尽量保证不能因为升级 ...

  2. Docker Swarm(八)滚动更新、回滚服务

    滚动更新.回滚服务 默认情况下, swarm一次只更新一个副本,并且两个副本之间没有等待时间,我们可以通过: # 定义并行更新的副本数量--update-parallelism# 定义滚动更新的时间间 ...

  3. Docker Swarm 服务版本更新与回滚

    Docker Swarm 服务版本更新 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作 ...

  4. Docker Kubernetes 容器扩容与缩容

    Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...

  5. Docker Kubernetes 容器重启策略

    Docker Kubernetes 容器重启策略 当容器被创建时,容器会根据重启策略来进行容器重启. 支持三种策略: Always:当容器终止退出后,总是重启容器,默认策略. OnFailure:当容 ...

  6. deployment控制pod进行滚动更新以及回滚

    更新pod镜像两种方式: 方式一:kubectl set image deployment/${deployment name} ${container name}=${image} 例: kubec ...

  7. kubernetes deployment升级和回滚

    a.创建deployment pod kubectl run mynginx --image=docker.io/nginx: --record 准备svc文件 apiVersion: v1 kind ...

  8. 【linux】【jenkins】jenkins构建、mvn或者npm打包、docker运行、失败自动回滚脚本

    小白对jenkins运维的使用有点简单的想法,这里开个记录贴记录下. 由于未找到jenkins构建失败后执行其他脚本的插件,也暂时没有使用其他运维工具.所以想自己写一个shell脚本,一是方便其他人使 ...

  9. linux运维、架构之路-K8s滚动更新及回滚

    一.滚动更新        应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...

随机推荐

  1. Java编程常见缺陷汇总(一)

     [案例1] public boolean equalNode(JudgeNode a, JudgeNode b) { return a.getId() == b.getId(); } [点评] 应在 ...

  2. c++ protobuf序列化

    只看了int类型的序列化,后面的有时间再研究 #include <vector> #include <iostream> int main() { ; while (true) ...

  3. 【Oracle】PL/SQL 显式游标、隐式游标、动态游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  4. 【消灭代办】第5周 - null拷贝,input自适应,进度条加载,颜色随机值

    2018.12.10 代办一:javascript中js怎么拷贝null的值 null属于简单类型的数值,直接进行拷贝即可: 2018.12.11 代办二:怎么让input自适应宽度? 这样是写下代办 ...

  5. LeetCode - 703. Kth Largest Element in a Stream

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element ...

  6. [工具] Altova UModel® 2017 is a UML tool for software modeling & application development.

    https://cdn.sw.altova.com/v2017sp2a/en/MissionKitEnt2017sp2.exe https://cdn.sw.altova.com/v2017sp2a/ ...

  7. linux操作2

    第2天 linux操作系统的目录结构 bin   #可执行程序的安装目录,命令boot #系统启动引导目录dev #设备目录,deviceetc #软件配置文件目录home #用户的家目录lib #系 ...

  8. 移动端click事件

    var tap = "ontouchstart" in document.documentElement ? "touchend" : "click& ...

  9. Java ee第七周作业

    一.什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的 ...

  10. array_merge() 用法

    array_merge() 函数把两个或多个数组合并为一个数组. 如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 注释:如果仅 ...