Kubernetes探索-Deployment面试

1. 简述Deployment的升级策略

在Deployment的定义中,可以通过'spec.strategy'指定Pod更新的策略,目前支持两种策略:Recreate(重建)和RollingUpdate(滚动更新),默认值为RollingUpdate。

  • Recreate:设置spec.strategy.type=Recreate,表示Deployment在更新Pod时,会先杀掉所有正在运行的Pod,然后创建新的Pod。
  • RollingUpdate:设置spec.strategy.type=RollingUpdate,表示Deployment会以滚动更新的方式来逐个更新Pod。同时,可以通过设置spec.strategy.rollingUpdate下的两个参数(maxUnavailable和maxSurge)来控制滚动更新的过程。

2. 简述Deployment滚动升级策略的参数

  • maxUnavailable: 定义在更新过程中最多可以有多少个旧版 Pod 不可用(未就绪)。它可以是:

    • 绝对数量(如 "maxUnavailable: 2" 表示最多允许2个Pod不可用)
    • 百分比(如 "maxUnavailable: 25%" 表示最多允许25%的Pod不可用)【向下取整

    在更新开始时,系统会确保至少有 (总副本数 - maxUnavailable) 个 Pod 始终处于可用状态以保证服务的整体容量。

  • maxSurge:

    定义在更新过程中能额外创建的新版 Pod 数量上限,以加快更新速度或者处理可能因为新版 Pod 启动慢而导致的可用性问题。它也可以是:

    • 一个绝对数量(比如 "maxSurge: 1" 表示最多可以额外创建1个新的Pod进行更新)
    • 一个百分比(例如 "maxSurge: 20%" 表示最多可以超出原有副本数的20%来创建新的Pod)【向上取整

3. 简述 Deployment的升级过程

假设deployment的滚动更新参数如下:

replicas: 3
deployment.spec.strategy.type: RollingUpdate
maxUnavailable:25%
maxSurge:25%

通过计算可得出:

        3*25%=0.75,maxUnavailable是向下取整 ===> maxUnavailable=0;

        3*25%=0.75,maxSurge是向上取整 ===> maxSurge=1;

所以我们得出在整个deployment升级镜像过程中:

        pod总数不能超过3+maxSurge=4个;

        最小pod可用数为3-maxUnavailable=3个;

具体更新过程如下:

1、deployment创建一个新的replaceset,先新增1个新版本pod,此时pod总数为4个,不能再新增了,再新增就超过pod总数4个了;旧=3,新=1,总=4;

2、减少一个旧版本的pod,此时pod总数为3个,这时不能再减少了,再减少就不满足最小pod可用数3个了;旧=2,新=1,总=3;

3、再新增一个新版本的pod,此时pod总数为4个,不能再新增了;旧=2,新=2,总=4;

4、减少一个旧版本的pod,此时pod总数为3个,这时不能再减少了;旧=1,新=2,总=3;

5、再新增一个新版本的pod,此时pod总数为4个,不能再新增了;旧=1,新=3,总=4;

6、减少一个旧版本的pod,此时pod总数为3个,更新完成,pod都是新版本了;旧=0,新=3,总=3;

4. Deployment常用命令 

4.1 基本操作
1.通过 YAML 文件创建一个 Deploymentkubectl apply -f tempalte.yaml
2.显示 Deployment 相关信息1) 查看指定deployment的描述信息(详细)kubectl describe deployment nginx-deployment2) 查看deployment的运行状态kubectl get deployment nginx-deployment3) 列出全部deploymentkubectl get deployments4)查看deployment的ReplicaSet(rs)信息kubectl get rs
3.更新Deployment(应用新的yaml覆盖/指定项更新)1) 直接更新yamlkubectl apply -f deployment-update.yaml2) 更新指定项(以镜像为例)kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
4.基于名称删除 Deploymentkubectl delete deployment nginx-deployment
4.2 扩缩容
1.指定缩放数量# kubectl scale --replicas 指定副本数量kubectl scale deployment/nginx-deployment --replicas=10# 修改yaml的replicas字段值kubectl edit deployment nginx-deployment 
2.水平自动缩放(指定最大最小值)kubectl autoscale deployment/nginx-deployment --min=10 --max=15 --cpu-percent=80
4.3 回滚
1.查看回滚历史kubectl rollout history deployment/nginx-deployment
2.查看修订历史的详细信息 (通过--revision 指定版本 )kubectl rollout history deployment/nginx-deployment --revision=2 
3.版本回退1)回退当前版本到之前kubectl rollout undo deployment/nginx-deployment2)指定版本进行回退 (--to-revision=2)kubectl rollout undo deployment/nginx-deployment --to-revision=2
4.基于名称查看Deployment上线运行状态kubectl rollout status deployment/nginx-deployment
5.暂停上线过程kubectl rollout pause deployment/nginx-deployment
6.恢复上线过程kubectl rollout resume deployment/nginx-deployment

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

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

相关文章

PEFT-LISA

LISA是LoRA的简化版,但其抓住了LoRA微调的核心,即LoRA侧重更新LLM的底层embedding和顶层head。 根据上述现象,LISA提出两点改进: 始终更新LLM的底层embedding和顶层head随机更新中间层的hidden state 实验结果 显存占用 毕竟模型…

RAMS (Mesoscale Model System) 和 WRF 区别

历史和发展: RAMS:RAMS 最早于1970年代由美国科罗拉多州立大学开发,并在之后几十年不断发展壮大。它是最早用于模拟地区尺度大气动力学、热力学和降水过程的模型之一。WRF:WRF 是由美国国家大气研究中心(NCAR&#xff…

openstack云计算(一)————openstack安装教程,创建空白虚拟机,虚拟机的环境准备

1、创建空白虚拟机 需要注意的步骤会截图一下,其它的基本都是下一步,默认的即可 ----------------------------------------------------------- 2、在所建的空白虚拟机上安装CentOS 7操作系统 (1)、在安装CentOS 7的启动界面中…

RuoYi-Vue若依框架-集成mybatis-plus报错Unknown column ‘search_value‘ in ‘field list‘

报错信息 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column search_value in field list ### The error may exist in com/ruoyi/sales/mapper/ZcSpecificationsMapper.java (best guess) ### The error may involve defaultParameter…

C++之STL的algorithm(6)之排序算法(sort、merge)整理

C之STL的algorithm(6)之排序算法(sort、merge)整理 注:整理一些突然学到的C知识,随时mark一下 例如:忘记的关键字用法,新关键字,新数据结构 C 的排序算法整理 C之STL的al…

Oracle数据库——分组函数四

12.1什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值。例如求平均数,最大值等等。 1.组函数类型 AVG :求平均数COUNT :COUNT(expr) 返回expr不为空的记录总数。 MAX 求最大值MIN

【简单讲解下WebSocket】

🌈个人主页:程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

Vue探索之Vue2.x源码分析(一)

一.响应式数据之数组的处理 <template><div><ul><li v-for"(item, index) in items" :key"index">{{ item }}<button click"removeItem(index)">Remove</button></li></ul><input v-model&…

Python卷积网络车牌识别系统(V2.0)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

基于单片机的无线红外报警系统

**单片机设计介绍&#xff0c;基于单片机的无线红外报警系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的无线红外报警系统是一种结合了单片机控制技术和无线红外传感技术的安防系统。该系统通过无线红外传感器实…

SpringBoot -- 外部化配置

我们如果要对普通程序的jar包更改配置&#xff0c;那么我们需要对jar包解压&#xff0c;并在其中的配置文件中更改配置参数&#xff0c;然后再打包并重新运行。可以看到过程比较繁琐&#xff0c;SpringBoot也注意到了这个问题&#xff0c;其可以通过外部配置文件更新配置。 我…

鸿蒙系统前端:构建智能互联新时代的界面之美

随着华为鸿蒙系统的推出&#xff0c;前端技术也迎来了新的挑战与机遇。鸿蒙系统&#xff0c;作为华为自主研发的分布式操作系统&#xff0c;旨在打通各类智能设备&#xff0c;为用户提供一个无缝的智能互联体验。在这个宏大的愿景下&#xff0c;鸿蒙系统的前端设计显得尤为重要…

Java作业练习_第六周作业多态性(小白学习记录,仅供参考,有错指出)

题目排序&#xff08;点击直达&#xff09; 第一题第二题第三题第四题第五题第六题第七题第八题免责声明 第一题 写出下列程序的运行结果&#xff1a; package com.cxl.ch5.demo5; public class Base {int m0;public int getM(){return m;} } package com.cxl.ch5.demo5;publ…

第18章 JDK8-17新特性

1. Java版本迭代概述 1.1 发布特点&#xff08;小步快跑&#xff0c;快速迭代&#xff09; 发行版本发行时间备注Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包Java 5.02004.09.30①版本号从1.4直接更新至5.0&#xff1b;②平台更名为JavaSE、JavaEE、JavaMEJava 8…

复杂度的讲解

1.算法效率 如何衡量一个算法的好坏&#xff1f;从两个维度&#xff0c;时间和空间&#xff08;算法运行的快慢&#xff0c;消耗的空间大不大&#xff09;。因为计算机硬件领域的高速发展&#xff0c;如今计算机的存储量已经达到了一个很高的程度&#xff0c;所以现在我们一般…

代码随想录算法训练营DAY15|C++二叉树Part.2|102.二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树

文章目录 102.二叉树的层序遍历思路伪代码迭代法递归法 CPP代码拓展题 226.翻转二叉树思路CPP代码 101. 对称二叉树伪代码CPP代码 102.二叉树的层序遍历 力扣题目链接 文章讲解&#xff1a;102.二叉树的层序遍历 视频讲解&#xff1a;讲透二叉树的层序遍历 | 广度优先搜索 | Le…

微信公众号如何开通留言功能?

首先&#xff0c;我们需要了解为什么现在注册的公众号没有留言功能。这是因为所有在2018年之后注册的微信公众号都无法再自带留言功能。这一变化是根据微信的通知而实施的。自2018年2月12日起&#xff0c;微信对新注册的公众号进行了调整&#xff0c;取消了留言功能。这一决策主…

MySQL - 基础二

6、表的增删改查 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; 6.1、Create 语法&#xff1a; INSERT [INTO] table_name[(column [, column] ...)]VALUES (value_list) [, (value_list)] ...value_list: v…

static关键字总结

static关键字的使用1. static: 静态的2. static 用来修饰的结构&#xff1a;属性、方法; 代码块、内部类&#xff1b;3. static修饰属性3.1 复习&#xff1a;变量的分类方式1&#xff1a;按照数据类型&#xff1a;基本数据类型、引用数据类型方式2&#xff1a;按照类中声明的位…

第十四届省赛大学B组(C/C++)子串简写

原题链接&#xff1a;子串简写 程序猿圈子里正在流行一种很新的简写方法&#xff1a; 对于一个字符串&#xff0c;只保留首尾字符&#xff0c;将首尾字符之间的所有字符用这部分的长度代替。 例如 internationalization 简写成 i18n&#xff0c;Kubernetes 简写成 K8s&#…