如何理解 K8s 动态伸缩与触发上线?

news2024/11/27 8:37:30

yys

K8s 版本:1.23.6


目录

    • 一、动态伸缩
    • 二、触发上线


一般地,如果仅修改 Pod 的副本数(如新增/缩减),这就属于动态伸缩。如果是修改容器镜像的版本,则会触发上线,具体看下面例子。

一、动态伸缩

1、查看当前 Pod 副本(当前为 2)

kubectl get pod

image-20230210162734240

2、扩容 Pod 副本数(扩容为 3)

# 方法1:编辑控制器,修改副本
kubectl edit deployment nginx

# 方法2:修改YAML配置文件
...
spec:
  replicas: 3
  selector:
    matchLabels:
      web: web-server
...

3、apply 应用创建资源

kubectl apply -f nginx.yml

4、再次查看副本数

kubectl get pod

可见,副本数已经调整为 3 了,你会发现,它是在原副本数的基础上新增了一个副本,之前的副本仍保持不变且正常对外提供服务,且 Replicaset 名也没发生变化。

image-20230210163525542

如果要实现缩容,把值调小于当前值即可。

二、触发上线

1、查看当前 Pod 副本(当前为 3)

kubectl get pod

image-20230210163525542

2、修改 Pod 中容器的镜像版本号

# 方法1:编辑控制器,修改副本
kubectl edit deployment nginx

# 方法2:修改YAML配置文件
...
    spec:
      containers:
        - name: nginx
          image: nginx:1.23.3
          ports:
          - containerPort: 80
...

3、apply 应用创建资源

kubectl apply -f nginx.yml

4、查看 Pod 是否正常运行

kubectl get pod

image-20230210165232135

5、验证 Pod 中容器镜像版本号

kubectl describe replicaset nginx-7ccc4bb9dd

image-20230210165053887

你会发现,这三个新的 Pod 实现了一个滚动更新的效果,ReplicaSet 名也发生了变化,也就是说创建了新的 ReplicaSet,新版逐渐替换旧版。如下图所示,创建了一个名为 nginx-7ccc4bb9dd 的 ReplicaSet 资源,并替换了旧的 ReplicaSet。

image-20230210165559485

所以这里 ReplicaSet 的作用就很明显了,前面的章节提到 ReplicaSet 创建于 Deployment,且 ReplicaSet 的名称为 Deploymen名称 + hash字串,这个 Hash 字串保证了不重叠,可见上图两个 ReplicaSet 资源,均来源于同个 Deploymen,但由于 Hash 的作用,在服务版本升级时避免了重叠现象。

小结:

  • 动态伸缩时,ReplicaSet 资源不发生变化,触发上线时,ReplicaSet 发生了变化;

  • 动态伸缩时,扩容则会在原 Pod 副本数的基础上新增 Pod,此时未发生触发上线;

  • 触发上线时,如修改 Pod 容器镜像版本,则所有 Pod 依次实现滚动升级,此时未发生动态伸缩。

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

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

相关文章

00后整顿职场?公司测试岗却新来了个00后卷王,3个月薪资干到20K...

最近聊到软件测试的行业内卷,越来越多的转行和大学生进入测试行业。想要获得更好的待遇和机会,不断提升自己的技能栈成了测试老人迫在眉睫的问题。 不论是面试哪个级别的测试工程师,面试官都会问一句“会编程吗?有没有自动化测试…

Mybatis框架(全部基础知识)

👌 棒棒有言:也许我一直照着别人的方向飞,可是这次,我想要用我的方式飞翔一次!人生,既要淡,又要有味。凡事不必太在意,一切随缘,缘深多聚聚,缘浅随它去。凡事…

2023年了,来试试前端格式化工具

在大前端时代,前端的各种工具链穷出不断,有eslint, prettier, husky, commitlint 等, 东西太多有的时候也是trouble😂😂😂,怎么正确的使用这个是每一个前端开发者都需要掌握的内容,请上车🚗&…

DHCP Relay中继实验

DHCP Relay实验拓扑图设备配置结果验证拓扑图 要求PC1按照地址池自动分配,而PC要求分配固定的地址,网段信息已经在图中进行标明。 设备配置 AR1: AR1作为DHCP Server基本配置跟DHCP Server没区别,不过要加一条静态路由&#xff…

基础篇:02-SpringCloud概述

1.SpringCloud诞生 基于前面章节,我们深知微服务已成为当前开发的主流技术栈,但是如dubbo、zookeeper、nacos、rocketmq、rabbitmq、springboot、redis、es这般众多技术都只解决了一个或一类问题,微服务并没有一个统一的解决方案。开发人员或…

计算机组成原理(三)

5.掌握定点数的表示和应用(主要是无符号数和有符号数的表示、机器数的定点表示、数的机器码表示); 定点数:小数点位置固定不变。   定点小数:小数点固定在数值位与符号位之间;   定点整数:小…

R语言贝叶斯方法在生态环境领域中的高阶技术

贝叶斯统计学即贝叶斯学派是一门基本思想与传统基于频率思想的统计学即频率学派完全不同的统计学方法,它在统计建模中具有灵活性和先进性特点,使其可以轻松应对复杂数据和模型结构。然而,很多初学者在面对思想、技术和方法都与传统统计学有着…

Springcloud----Nacos快速搭建使用

Nacos使用指南 Nacos完整的搭建和项目配置流程,上手简单 一、Nacos安装启动 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主…

尚硅谷的尚融宝项目

先建立一个Maven springboot项目 进来先把src删掉&#xff0c;因为是一个父项目&#xff0c;我们删掉src之后&#xff0c;pom里配置的东西&#xff0c;也能给别的模块使用。 改一下springboot的版本号码 加入依赖和依赖管理&#xff1a; <properties><java.versi…

大型智慧校园系统源码 智慧校园源码 Android电子班牌源码

一款针对中小学研发的智慧校园系统源码&#xff0c;智慧学校源码带电子班牌、人脸识别系统。系统有演示&#xff0c;可正常上线运营正版授权。 私信了解更多&#xff01; 技术架构&#xff1a; 后端&#xff1a;Java 框架&#xff1a;springboot 前端页面&#xff1a;vue e…

keepalived+mysql高可用

一.设置mysql同步信息两节点安装msyql略#配置节点11.配置权限允许远程访问mysql -u root -p grant all on *.* to root% identified by Root1212# with grant option; flush privileges;2.修改my.cnf#作为主节点配置(节点1)#作为主节点配置 server-id 1 …

leetcode刷题 | 关于前缀和题型总结1

leetcode刷题 | 关于前缀和题型总结1 文章目录leetcode刷题 | 关于前缀和题型总结1题目链接和为K的子数组连续数组/0 和 1 个数相同的子数组和大于等于 target 的最短子数组/长度最小的子数组路经总和Ⅲ题目链接 560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09;…

Python-第三天 Python判断语句

Python-第三天 Python判断语句一、 布尔类型和比较运算符1.布尔类型2.比较运算符二、if语句的基本格式1.if 判断语句语法2.案例三、 if else 语句1.语法2.案例四 if elif else语句1.语法五、判断语句的嵌套1.语法六、实战案例一、 布尔类型和比较运算符 1.布尔类型 布尔&…

【学习笔记】Nginx实战

反向代理实战 解压Tomcat两次-Tomcat8081、Tomcat8082两个文件夹Tomcat8081只需要修改http协议端口8081Tomcat8082&#xff1a;&#xff08;三个都需要改&#xff0c;不然只会启动其中一个&#xff09;1.修改server的默认端口2.修改http协议的默认端口3.膝盖默认ajp协议的默认端…

面试题: Redis的数据备份

1 RDBRDB全称为Redis Database Backup file &#xff0c;也被叫做Redis数据快照&#xff0c;简单来说就是将当前的所有数据都记录打哦磁盘中&#xff0c;当redis故障重启时&#xff0c;从磁盘读取快照文件进行数据恢复。连接客户端后&#xff0c;使用save命令进保存&#xff0c…

设置Visual Studio 2022背景图

前言 编写代码时界面舒服&#xff0c;自己喜欢很重要。本篇文章将会介绍VS2022壁纸的一些设置&#xff0c;主题的更改以及如何设计界面。 理想的界面应该是这样的 接下来我们来一步步学习如何将界面设计成这样 一、壁纸插件下载 1.拓展->点击拓展管理 2.右上角搜索backgro…

【shell 编程大全】shell 变量的定义以及使用

shell 变量定义 以及使用从此刻开始跟我一起学习shell 相关知识吧 前情回顾 上一章节【shell 前奏知识】 我们已经学习了很多shell的必备知识&#xff0c;让我们一起来回顾下。 shelll的存放位置如何切换shellshell文件中的注释有哪些查看当前系统的shell类型执行shell的n种方…

ubuntu20.04如何安装nvidia-docker?

文章目录安装步骤导入 NVIDIA GPG 密钥添加 NVIDIA Docker 存储库安装 nvidia-container-toolkit检查nvidia-docker是否安装成功安装步骤 导入 NVIDIA GPG 密钥 curl -s https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -添加 NVIDIA Docker 存储库 dist…

2010-2019年290个地级市经济发展与城市绿化数据

2010-2019年290个地级市经济发展与城市绿化数据 1、时间&#xff1a;2010-2019年 2、来源&#xff1a;城市统计NJ&#xff0c;缺失情况与NJ一致 3、范围&#xff1a;290个地级市 4、指标&#xff1a; 综合经济&#xff1a;地区生产总值、人均地区生产总值、地区生产总值增…

开源的电子邮件客户端Cypht

网友 OOXX 在找好用的 webmail&#xff0c;老苏觉得 Cypht 还不错 什么是 Cypht &#xff1f; Cypht 是一个简单、轻量级和现代的 Webmail 客户端&#xff0c;它将多个帐户聚合到一个界面中。除了电子邮件帐户&#xff0c;它还支持 Atom/RSS 源。 安装 建数据库 数据库直接用…