k8s滚动更新

news2024/11/28 8:25:04

1.编写一个yaml文件

vi deployment-nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata: 
  labels:
    app: nginx
  name: nginx
  namespace: default
spec:
  replicas: 3
  progressDeadlineSeconds: 600  #表示在这个时间段内,如果 Deployment 的 Pod 没有完成更新,则认为更新失败。默认值为 600 秒。这个参数主要用于控制 Deployment 更新的超时时间,避免更新过程中出现问题导致一直处于更新中的状态
  minReadySeconds: 10     #表示 Deployment 的 Pod 至少需要在这个时间段内处于 Ready 状态,才会被认为是更新成功。默认值为 0 秒。这个参数主要用于控制 Deployment 更新的稳定性。在更新过程中,如果 Pod 的状态不稳定,可能会导致服务不可用。通过设置 minReadySeconds,可以确保更新后的 Pod 状态稳定后再将其纳入服务
  strategy:
    rollingUpdate:
      maxSurge: 1   #参数定义了在滚动更新过程中,允许同时处于正在部署状态的Pod数量与原有多少Pod数量的比例。例如,如果maxSurge设置为50%,则在进行滚动更新时,可以同时部署50%的新版本Pod,剩余的50%仍为旧版本Pod。默认值为25%,也可以使用准确的个数
      maxUnavailable: 0  #参数定义了在滚动更新过程中,允许同时处于不可用状态的Pod数量与原有多少Pod数量的比例。例如,如果maxUnavailable设置为25%,则在进行滚动更新时,最多允许25%的Pod处于不可用状态。这个参数可以用来控制滚动更新时对应用程序可用性的影响。默认值为25%,最安全的滚动更新是设置此项为0,maxSurge设置为1,即生成一个新版本的pod之后,再删除一个老版本的pod,所以在更新过程中会存在4个pod,但是这个配置的更新速度是最慢的
    type: RollingUpdate  #更新模式的配置,一共有两种更新模式,分别是RollingUpdate、Recreate,前者采用滚动更新的方式更新pod,后者则是直接删除所有旧版本的pod,再重建新版本的pod
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec: 
      containers:
      - name: nginx
        image: nginx:1.17
        imagePullPolicy: IfNotPresent  #拉取镜像的策略,表示本地有这个镜像时,直接使用本地镜像,没有时才从镜像源拉取
        ports:
        - containerPort: 80
        resources:
          requests:
            memory: 50Mi
            cpu: 0.5
          limits:
            memory: 100Mi
            cpu: 1

2.使用yaml文件

kubectl create -f  deployment-nginx.yaml --record

 --record表示记录此版本到deployment的history中,回滚时可以使用

查看一下deployment和pod

kubectl get deployment -o wide -n default

kubectl get pod -n default

现在我们来更新一下nginx的镜像版本,做一个滚动升级,并且查看一下pod和deployment

kubectl set image deployment nginx nginx=nginx:1.18 --record

kubectl get deployment -o wide -n default

kubectl get pod -n default -l app=nginx

可以看到在滚动更新的过程中pod的个数变成了4个,当更新完成后pod的数量恢复成了3个

 再来查看一下deployment使用的镜像版本

kubectl get deployment nginx -o wide

 接下来介绍一下有关滚动更新的rollout命令

kubectl rollout history deployment nginx -n default

查看历史版本,可以通过历史版本中的revision恢复成指定的版本

 

 kubectl rollout pause deployment nginx -n default

暂停滚动更新

kubectl rollout resume deployment nginx -n default

恢复滚动更新

kubectl rollout status deployment nginx -n default

查看滚动更新的状态

 

kubectl rollout undo deployment nginx -n defaulre --to-revision=1

恢复到指定的版本

 

也可以使用以下命令查看

kubectl rollout --help

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EtherCAT运动控制卡开发教程之python

众所周知,Python作为一门面向对象的新兴开发语言,具有非常完善的基础代码库,更注重实用,同时代码可读极强,编写完程序即可直接运行,被越来越多的人广泛将它用于机器视觉和自动化控制。 今天正运动技术与大…

第三十七章 扩展知识点

1、setState (1). setState(stateChange, [callback])------对象式的setState1.stateChange为状态改变对象(该对象可以体现出状态的更改)2.callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用(2). setState(updater, [callback])------函数式的…

敏捷专题:新一代的汽车软件研发

过去,买车属于一锤子买卖,但近年来智能制造、新能源汽车等概念的狂飙突进下,个性化、定制化、智能化的新车型正倍速来到消费者面前,不到20万元就能买到各大车企搭载了智能座舱和智能驾驶功能的产品。 ▲智能座舱 众所周知&#xf…

(一)微服务中间键工作原理——nacos客户端服务注册原理说明及源码解读

前言 本节内容我们主要介绍一下中间键nacos的客户端服务注册原理及其源码解读,便于我们理解nacos作为服务注册中心的具体实现。在springcloud的微服务体系中,nacos客户端的注册是通过使用spring的监听机制ApplicationListener实现的。学习本节内容&…

golang常见导致panic的场景

1、越界 常见有数组越界和字符串越界 2、空指针引用 直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic 3、断言失败 4、map操作错误 map未初始化,可读不可写。 map的value如果是结构体指针&#xf…

G0第21章 :gin框架介绍、RESTful API、Gin渲染

G0第21章 :gin框架 01 内容介绍 web本质 Web是基于HTTP协议进行交互的应用网络Web就是通过使用浏览器/APP访问的各种资源 package mainimport ("fmt""net/http" )func sayHello(w http.ResponseWriter, r *http.Request){_, _ fmt.Fprintln(…

MKS SERVO4257D 闭环步进电机_系列1 产品简介

第1部分 产品概述 1.1 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口,RS485接口和CAN接口,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有…

《深入理解计算机系统》读书笔记1.1-1.5

1.1信息就是位上下文 只由ASCLL字符构成的文件称为文本文件,所有其他文件都称为二进制文件。 系统中的所有的信息都由一串比特表示。区分不同数据对象的唯一方法是读到这些数据对象时的上下文。 1.2程序被其他程序翻译成不同的格式 预编译,编译&#xf…

EasyCVR视频融合平台设备分组共享功能的使用介绍

EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议、多类型的设备接入,并能对设备进行分级、分组管理,并支持权限、角色分配,属于功能全…

PFC落石模拟

Landslide/Rockfall simulation 山体滑坡/落石模拟 https://www.youtube.com/watch?vWSa3909qYmI 模拟的目的在于通过导入团块的对象文件产生团块的二进制输出。 具体措施: (i) 使用导入的几何体形成团块模板 (ii) 使用Taghavi(2011)定义的BubblePack算法来生成卵石…

算法|4.归并排序及应用

算法|4.归并排序及应用 1.归并排序算法 题意:归并排序的递归和非递归实现 解题思路: ​ 递归实现: 预处理:数组为空或者长度小于2的直接返回调用子过程子过程终止条件LR分解成[L,mid],[mid1,R] ,子数组…

九章云极DataCanvas公司诚邀您共享AI基础软件前沿技术盛宴

“杭州通用人工智能论坛暨AIIA人工智能产业发展大会”将于2023年5月30日-31日在杭州举办。本次人工智能产业发展大会由中国信息通信研究院、中国人工智能产业发展联盟主办,杭州城西科创大走廊管委会、杭州市经济和信息化局、杭州未来科技城管理委员会、人工智能关键…

企业级信息系统开发——初探JdbcTemplate操作

文章目录 一、创建数据库与表1、创建数据库2、创建用户表3、用户表添加记录 二、打开Spring项目三、添加数据库相关依赖四、创建用户实体类五、创建用户数据访问接口六、创建用户数据访问接口实现类七、创建用户服务类八、创建数据库配置属性文件九、创建Spring配置文件十、创建…

Springboot +spring security,解决跨域问题

一.简介 这篇文章主要是解释什么是跨域,在Spring中如何解决跨域,引入Spring Security后Spring解决跨域的方式失效,Spring Security 如何解决跨域的问题。 二.什么是跨域 跨域的概率: 浏览器不能执行其他网站的脚本&#xff0c…

jsp页面调试

现象: 访问jsp页面, 页面为空, 网络请求显示失败, 控制台打印错误net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 分析: 错误描述:编码模块不完整,返回浏览器的流不完整 可能得原因: 1、网络是否稳定 2、服务器端是否有对响应数据做限制,比如…

【App自动化测试】(十七)遍历测试工具——Android Maxim

目录 1. Android Maxim介绍2. Android Maxim使用方法3.Android Maxim运行命令4.Android Maxim的策略5.实例演示——Windows系统,使用AVD模拟器,系统 Android6.0 1. Android Maxim介绍 Android Maxim是基于遍历规则的高性能Android Monkey,适…

基于SpringBoot+Vue的毕业生信息招聘平台设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

Elasticsearch常用接口使用说明以及postman调用调试

查看集群状态 接口url:http://xxxx:9200/_cat 查看所有索引 http://xxxx:9200/_cat/indices?v 创建索引 http://xxxx:9200/test-20230526?pretty 返回值 { "acknowledged": true, "shards_acknowledged": true, "index": &quo…

Opencv-C++笔记 (2) : opencv的矩阵操作

文章目录 创建与初始化1.1 数据类型1.2 基本方法1.3 初始化方法 矩阵加减法矩阵乘法矩阵转置矩阵求逆矩阵非零元素个数矩阵均值与标准差矩阵全局极值及位置GEMM 通用矩阵乘法Transform 对数组每一个元素执行矩阵变换MulTransposed 计算数组和数组的转置的乘积Trace 返回矩阵的迹…

WIN10:Cognos10.2_x32安装

一、Cognos BI Server 10.2 32Bit 二、Cognos Transformer 10.2 三、Cognos Framework Manager 10.2 四、环境 1、如果使用Cognos自带的Tomcat web容器,将E:\common\Cognos\c10\webcontent下的所有文件拷贝到E:\common\Cognos\c10\webapps\p2pd 下面.(一般我们就使…