Kubernetes之应用升级回滚弹性伸缩

摘要:
在kubectlsetmage的前一章中,您可以使用该命令替换映像并升级web.yaml。例如,将图像替换为nginxkubectlsetimagedeploymentwbjava=nginx。新容器将处于运行状态,旧容器将被删除。访问将再次丢失,因为前一个java的后端端口是8080,但更新后,需要转发的端口是80。通过编辑编辑和修改服务的转发端口。服务的转发端口为8

  通过命令可以替换镜像升级

kubectl set image

  以上一篇的web.yaml为例

Kubernetes之应用升级回滚弹性伸缩第1张

   把镜像替换成nginx

kubectl set image deployment web java=nginx

Kubernetes之应用升级回滚弹性伸缩第2张

  三个副本滚动升级,新容器处于运行状态会删除旧容器

Kubernetes之应用升级回滚弹性伸缩第3张

 Kubernetes之应用升级回滚弹性伸缩第4张

   再次访问无法访问了

Kubernetes之应用升级回滚弹性伸缩第5张

   因为之前java的后端端口是8080但是更新以后需要转发的端口是80

  通过edit编辑修改service的转发端口为80

kubectl edit svc/web

Kubernetes之应用升级回滚弹性伸缩第6张

  可以访问了访问的为nginx页面

Kubernetes之应用升级回滚弹性伸缩第7张

   

   查看升级状态

kubectl rollout status deployment/nginx

Kubernetes之应用升级回滚弹性伸缩第8张

   部署的应用有问题需要回滚到之前的版本

  deployment会保留每次滚动更新的记录

kubectl rollout history deployment web

Kubernetes之应用升级回滚弹性伸缩第9张

   使用快捷命令回滚到上一个版本,很少回滚到之前的某个指定版本

kubectl rollout undo deployment web

  查看状态

Kubernetes之应用升级回滚弹性伸缩第10张

   再次把端口修改成8080即可 (生产环境应该都是相同的端口不需要反复修改)

kubectl edit svc/web

  

Kubernetes之应用升级回滚弹性伸缩第11张

   使用ip加端口即可访问

  回滚到指定版本

kubectl rollout undo deployment/web --to-revision=2

  删除

kubectl delete deploy/web
kubectl delete svc/web

  如果直接删除pod会不起作用 因为删除一个会启动一个

kubectl delete pod web-867dd4dcf-dkpvx

Kubernetes之应用升级回滚弹性伸缩第12张

   deployment可以保证预期的副本数,如果少一个pod会启动一个,如果多了会删除

  当部署一个应用面对双11了 可以对应用实例进行扩容,传统的扩容方式是扩容虚拟机,比较繁琐

  在k8s中使用一条命令就可以扩容副本数

kubectl scale  deployment web --replicas=5

Kubernetes之应用升级回滚弹性伸缩第13张

   如果集群的资源不够这种扩容也意义不大,需要集群的资源够用

  设定副本数也可以缩容

kubectl scale  deployment web --replicas=3

  部署一个depolyment会创建一个replicaset  

kubectl get deploy,rs

Kubernetes之应用升级回滚弹性伸缩第14张

   rs对比运行的副本数和运行的副本数,如果少了就新启一个副本

  还有一个作用是记录历史记录方便回滚等操作

  滚动更新会创建一个新的rs

Kubernetes之应用升级回滚弹性伸缩第15张

   滚动更新期间会有一个新旧版本的存在,新创建的pod准备就绪了会kill掉旧pod 旧的rs副本数最后变成0了

    

免责声明:文章转载自《Kubernetes之应用升级回滚弹性伸缩》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇处理地图经纬度,保留6位小数通过mybatis向数据库中插入日期数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

eclipse里不支持泛型的解决方法

提示错误如下:Syntax error, parameterized types are only available if source level 在myeclipse里引入新项目的时候会报如下错误: 在使用泛型的地方提示: Multiple markers at this line - Syntax error, parameterized typ...

Raft算法原理剖析

一、复制状态机(replicated state machine)   Raft协议可以使得一个集群的服务器组成复制状态机,在详细了解Raft算法之前,我们先来了解一下什么是复制状态机。一个分布式的复制状态机系统由多个复制单元组成,每个复制单元均是一个状态机,它的状态保存在一组状态变量中,状态机的变量只能通过外部命令来改变。简单理解的话,可以想象成是一组服...

linux下使用convert命令修改图片分辨率【转】

本文转载自:http://blog.csdn.net/mybelief321/article/details/9969949 Convert的resize子命令应该是在ImageMagick中使用较多的命令,它实现了图片任意大小的缩放,唯一需要掌握的就是如何使用它的一些参数测试设定值: 此说明文件中所用的原始文件(src.jpg),宽度:200,高度:15...

如何将一个Maven项目转化成一个Eclipse项目

有时候我们需要将一个Maven项目导入到Eclipse中,直接作为一个普通的eclipse项目来导入是不行的,我们可以通过一个命令来实现:mvn eclipse:eclipse 1、 进入该Maven项目的目录,该目录下必须要有pom.xml文件,否则是无法运行以上命令的。 2、在当前目录的地址栏里输入cmd;或者按住Shift+鼠标右键,选择在此处打开命...

AVD模拟器怎么配置上网

转自:http://blog.csdn.net/you_jinjin/article/details/7228303 方法一 首先,Windows下,配置Adroid环境变量(Win7为例) 1、桌面右键——》我的电脑——》高级系统设置 2、高级——》环境变量——》系统变量——》Path 3、添加Android SDK目录到系统变量Path中,如下图:...

统计一个版本代码变化行数

项目总结时,我们常常需要统计代码行数,来查看每个项目开发者的代码总量,提交次数和变更文件数。 这里介绍一下statsvn工具统计代码行数的方法。   1、安装tortoise svn 下载tortoise svn,下载地址:https://tortoisesvn.net/downloads.html,附件给出了64位的版本。 点击运行,按照提示安装完成。...