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

一、滚动更新

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

1、创建三个副本Httpd服务,初始镜像为httpd:2.2.31,然后滚动更新至httpd:2.2.32

###cat httpd.yaml###
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: httpd
spec:
  replicas: 3
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd:2.2.31
        imagePullPolicy: IfNotPresent  #默认值,本地有则使用本地镜像,不拉取
        ports:
        - containerPort: 80

①创建

kubectl apply -f httpd.yaml

②查看

③修改deployment文件进行更新

 应用

kubectl apply -f httpd.yaml --record
--record的作用是将当前命令记录到revision 记录中,这样我们就可以知道每个revison对应的是哪个配置文件

④再次查看更新后的httpd版本

⑤使用命令查看滚动更新详细

kubectl describe deployment httpd

 结果:每次只更新替换一个pod副本

⑥使用命令替换镜像

kubectl set image deployments/httpd httpd=httpd:2.2.33

⑦验证如下:

[[email protected] rolling]# kubectl get deployment -o wide
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE       CONTAINERS   IMAGES                       SELECTOR
httpd      3         4         1            3           42m       httpd        httpd:2.2.33                 app=httpd
mtomcat    1         1         1            1           4d        mtomcat      liujixiao/java-demo:latest   app=mtomcat
mynginx    1         1         1            1           9d        mynginx      nginx:latest                 name=mynginx
mytomcat   1         1         1            1           9d        mytomcat     tomcat:8                     app=mytomcat
nginx      1         1         1            1           16d       nginx        nginx:latest                 name=nginx
[[email protected]-node1 rolling]# kubectl get rs -o wide
NAME                 DESIRED   CURRENT   READY     AGE       CONTAINERS   IMAGES                       SELECTOR
httpd-7584b484ff     3         3         3         11m       httpd        httpd:2.2.32                 app=httpd,pod-template-hash=3140604099
httpd-cb5f5c5cb      1         1         0         38s       httpd        httpd:2.2.33                 app=httpd,pod-template-hash=761917176
httpd-fbdc45d78      0         0         0         42m       httpd        httpd:2.2.31                 app=httpd,pod-template-hash=968701834
mtomcat-7d6b5577b9   0         0         0         4d        mtomcat      tomcat:8                     app=mtomcat,pod-template-hash=3826113365
mtomcat-b8d9c579     1         1         1         3d        mtomcat      liujixiao/java-demo:latest   app=mtomcat,pod-template-hash=64857135
mynginx-7659f869f4   1         1         1         9d        mynginx      nginx:latest                 name=mynginx,pod-template-hash=3215942590
mytomcat-698fb6789   1         1         1         9d        mytomcat     tomcat:8                     app=mytomcat,pod-template-hash=254962345
nginx-5bc649579b     1         1         1         5d        nginx        nginx:latest                 name=nginx,pod-template-hash=1672051356
nginx-fd7dc4fbc      0         0         0         16d       nginx        nginx:latest                 name=nginx,pod-template-hash=983870967

二、回滚

原文地址:https://www.cnblogs.com/yanxinjiang/p/11969717.html

时间: 2024-11-06 07:32:21

linux运维、架构之路-K8s滚动更新及回滚的相关文章

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

滚动更新.回滚服务 默认情况下, swarm一次只更新一个副本,并且两个副本之间没有等待时间,我们可以通过: --update-parallelism:设置并行更新的副本数量. --update-delay: 指定滚动更新的时间间隔. 创建8个副本的masl服务: docker service create --name masl -e TZ="Asia/Shanghai" --network mrp_net --replicas 8 -p 8081:8080 \--update-de

《Linux运维架构师课程 - 门徒班》【招生中】

课程简介 阿良的课程内容主要以企业核心技术为讲解对象,避免过多在企业中很少用的技术,从而减少学习负担,这样就可以把精力主要花费在更重要的技术上, 而不像其他培训机构那样,讲很多高大上的技术名词,其中可能50%的知识在工作中都用不到,学员抓不住重点,时间长了就忘了.    所以,阿良的教学模式讲究是精益求精,"好钢用到刀刃上,只求精,不求多".    只要你肯学,阿良就肯教.帮助你掌握这门技能,成功就业,初学者月薪达到6000以上. 授课对象 ■ 计算机相关专业在校学生/应届生 ■ 网络

Linux运维架构师课程介绍

课程体系:     RHCE(RedHat Certification Engineer): RH033(基础) RH133(系统管理) RH253(服务管理)     RHCA(Redhat Centification Architect): RH401 RH423(LDAP协议) RH442         RH436(集群和存储) RHS333     MySQL     NoSQL 工作岗位: 系统架构师:设计蓝图 系统工程师:系统上线 运维工程师:系统运维 DBA:数据库管理员 计算机

Linux运维架构师学习开篇——笔记

从毕业从事硬件失效分析方面工作近三年, 偏冷门的行业,一直在工厂产线,吸着产品线散发出的一道道气息,闲暇之余我也在思考难道我今后只能在工厂待一辈子吗?我的职业只能在生产线处理不良产品,我的未来就是作为一个硬件高级维修工吗?我想走出产品线,对未来的职业发展充满迷茫,内心思想一直在挣扎.马上奔三后该做什么,能做什么? 以前接触过Linux,但仅仅是复制粘贴指令,配置IP,最基本操作而已,没有接触到真正的技术,为了今后能有一技之长,有个明确的发展方向(云端),也为了能拿到一份不错的薪水,提高生活质量,

linux运维之路第一篇章:决心书

这一次很有毅力的选择了linux运维的这条路 为什么会这样选择? 自身往技术发展的需求! 身边朋友的推荐! 对在北京生活的一种追求! 来到北京很多人是想着挣钱的,我也是一样,在北京一家不知名的民办学校上了二年学,呵呵,就是野鸡大学,虽然学校对于教育放来来说不是怎么回事,但是对于技术方面还有两把刷子,可能自己对于网络有写喜欢,学了电子商务,工作之后做了SEO优化,到如今也有近两年的时间了.两年自己一直处在底薪阶层(3~6k),然而谁没有一个追求,展现自身更多的价值,拿更高的薪资,过上更好的生活,也

Linux运维需要懂什么web集群架构知识?

Linux运维需要懂什么web集群架构知识? 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

了解Linux运维要用到的web集群架构知识

了解Linux运维要用到的web集群架构知识 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz! log.latermoon.com/

从5台服务器到两地三中心:魅族系统运维架构演进之路(含PPT)

从5台服务器到两地三中心:魅族系统运维架构演进之路(含PPT)