【K8s】专题六(3):Kubernetes 稳定性之自动扩缩容

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


一、基本介绍

在 Kubernetes 中,自动扩缩容是一种动态调整集群资源,以灵活应对应用程序资源需求变化的机制。

自动扩缩容可以分为两个层面:

  • Node 层面:根据业务规模,实现集群节点的自动扩缩容
  • Pod 层面:根据业务规模,实现 Pod 副本的自动扩缩容

自动扩缩容提供了以下好处:

  • 提高资源利用率:根据实际需求动态调整资源,避免资源浪费
  • 提高应用稳定性和可用性:自动应对流量高峰,减少服务中断的风险
  • 简化运维:减少手动干预,自动化资源管理,简化运维工作
  • 成本效益:通过合理的资源分配,降低运营成本

本文将重点介绍几种常见的 Pod 层面自动扩缩容机制。


二、HPA 机制

Pod 水平自动伸缩(Horizontal Pod Autoscaler,HPA)是 Kubernetes 中最常见的自动扩缩容方式,它可以根据 Pod 实际的负载情况自动增加或减少 Pod 副本的数量。

HPA的工作原理如下:

  • 度量指标:HPA 可以根据 CPU 利用率、内存利用率或其他自定义度量指标来触发扩缩容
  • 目标利用率:设置目标利用率,例如 CPU 的 10%,HPA 会尝试维持这个利用率水平
  • 限制 Pod 数量:可以设置最小和最大 Pod 数量的限制,防止在极端情况下资源的过度使用或不足
  • 缩放策略:HPA 支持不同的缩放策略,如快速缩放、慢速缩放和标准缩放,以适应不同的业务场景
# 创建 HPA 对象
kubectl autoscale deployment demo-deployment --cpu-percent=10 --min=1 --max=10
🔔 --min:指定最小的 Pod 副本数为1
🔔 --max:指定最大的 Pod 副本数为10
🔔 --cpu-percent:指定 Pod 的 CPU 使用率保持在 10%# 查看 HPA 对象
kubectl get hpa# 删除 HPA 对象
kubectl delete hpa demo-deployment


三、VPA 机制

Pod 垂直自动伸缩(Vertical Pod Autoscaler,VPA)可以根据 Pod 的资源使用情况,自动调整 Pod 的资源请求(Requests)和资源限制(Limits)。

VPA的工作原理如下:

  • 资源分析:VPA 会分析 Pod 的资源使用情况,如 CPU 利用、内存利用
  • 动态调整:VPA 可以动态调整 Pod 的资源请求和资源限制,以优化资源使用和成本


四、KPA 机制

Pod 基于请求数自动伸缩(Knative Pod Autoscaler,KPA)是一种由 Knative Serving 提供的机制,它可以根据并发请求数及相应的算法,自动增加或减少 Pod 副本的数量,适用于业务流量突发激增的场景。

详细内容请参考技术文档:Knative 基本功能深入剖析

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

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

相关文章

前端vue项目升级nodejs后无法运行了

问题描述: 运行、打包都正常的vue项目,在将nodejs升级到v20.14.0后,均报错了: Error: error:0308010C:digital envelope routines::unsupported opensslErrorStack: [ error:03000086:digital envelope routines::initializ…

Java高级重点知识点-17-异常

文章目录 异常异常处理自定义异常 异常 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。Java处 理异常的方式是中断处理。 异常体系 异常的根类是 java.lang.Throwable,,其下有两个子类:ja…

# Kafka_深入探秘者(5):kafka 分区

Kafka_深入探秘者(5):kafka 分区 一、kafka 副本机制 1、Kafka 可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中,只要如果分区规则设置的合理,那么所有的消息将会被均匀的…

FastDFS部署

版本介绍 安装fastdfs共需要俩个安装包 fastdfs-5.05.tar.gz libfastcommon-1.0.7.tar.gz编译安装 libfastcommon tar -xvf libfastcommon-1.0.7.tar.gz cd libfastcommon-1.0.7 make.sh make.sh install 3. 设置软链接 libfastcommon.so默认安装到了/usr/lib64/libfastcommon.…

笔记-Python文件: .py、.ipynb、.pyi、.pyc、​.pyd

.py 最常见的Python代码文件后缀名,官方称Python源代码文件。 不用过多解释了~ .ipynb 这个还是比较常见的,.ipynb是Jupyter Notebook文件的扩展名,它代表"IPython Notebook"。 学过数据分析,机器学习,深度…

暑假假期规划 离不开宝藏待办计划管理工具

暑假来临,两个月的自由时间,如何过得充实而有意义,成了我最近思考的问题。毕竟,一个合理的假期规划,不仅能让我的假期生活更加丰富多彩,还能为新学期的到来做好充分的准备。 我幻想着在这个暑假里&#xf…

CSS|04 复合选择器伪类选择器属性选择器美化超链接

基本选择器:见上篇基本选择器 复合选择器选择器1,选择器2{属性:值;} 多元素选择器,同时匹配选择器1和选择器2,多个选择器之间用逗号分隔举例: p,h1,h2{margin:0px;}E F{属性:值;} 后代元素选择器,匹配所有属于E元素后…

塑造卓越企业家IP:多维度视角下的策略解析

在构建和塑造企业家IP的过程中,我们需要从多个维度进行考量,以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我:企业家需要清晰地认识到自己的…

Laravel 谨慎使用Storage::append()

在 driver 为 local 时,Storage::append()在高并发下,会存在丢失数据问题,文件被覆写,而非尾部添加,如果明确是本地文件操作,像日志写入,建议使用 Illuminate\Filesystem\Filesystem或者php原生…

Rust: duckdb和polars读csv文件比较

duckdb在数据分析上,有非常多不错的特质。1、快;2、客户体验好,特别是可以同时批量读csv(在一个目录下的csv等文件)。polars的性能比pandas有非常多的超越。但背后的一些基于arrow的技术栈有很多相同之类。今天想比较一…

Python 算法交易实验75 QTV200后续想法梳理

说明 在第一步获取数据源,然后进入Mongo(第一个数据节点)开始,QTV200的数据流体系就开始动了。后续用多少时间完成不太好确定,短则数周,长则数月。毕竟有过第一版实验的基础,应该还是可以做到的。 下面就是天马行空&…

浅谈人工智能发展趋势

第三次浪潮 人类科技发展的主线正沿着“能源”和“新型”展开。AI的尽头是光伏和储能。 如今我们正在经历第三次浪潮——信息文明。 社会生产力 劳动对象 劳动工具 劳动者 生产要素 农业文明铜器铁器 材料 人力工具 农民 土地人力 工业文明机车电力 材料动力 动力…

如何使用命令提示符查询电脑相关序列号等信息的操作方法

如何使用命令提示符查询硬盘的序列号? 如果出于保修或其他目的,你想知道硬盘驱动器的序列号,你不想使用第三方应用程序,或者如果你更喜欢命令行方法,则可以使用带有命令提示符的命令来显示硬盘驱动器的序列号。 1. 按…

# 音频处理4_傅里叶变换

1.离散傅里叶变换 对于离散时域信号 x[n]使用离散傅里叶变换(Discrete Fourier Transform, DFT)进行频域分析。 DFT 将离散信号 x[n] 变换为其频谱表示 X[k],定义如下: X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N X[k]…

【QT】输入类控件

目录 Line Edit 核心属性 核心信号 正则表达式 示例:使用正则表达式验证输入框内容 示例:切换输入框密码模式下的显示状态 Text Edit 核心属性 核心信号 示例:获取多行输入框的内容同步显示到label 示例:获取文本的选…

Windows 安装docker详细步骤说明

文章目录 1. 检查系统要求2. 启用硬件虚拟化3. 启用Hyper-V和容器功能4. 下载并安装Docker Desktop5. 配置Docker Desktop6. 安装WSL 27. 验证Docker安装8. 常见问题排查9. 重点说明参考资源 在Windows上安装Docker的详细步骤如下: 1. 检查系统要求 确保您的Window…

WPF----自定义滚动条ScrollViewer

滚动条是项目当中经常用到的一个控件&#xff0c;大部分对外项目都有外观的需求&#xff0c;因此需要自定义&#xff0c;文中主要是针对一段动态的状态数据进行展示&#xff0c;并保证数据始终在最新一条&#xff0c;就是需要滚动条滚动到底部。 1&#xff0c;xaml中引入 <…

提升写作效率:探索AI在现代办公自动化中的应用

工欲善其事&#xff0c;必先利其器。 随着AI技术与各个行业或细分场景的深度融合&#xff0c;日常工作可使用的AI工具呈现出井喷式发展的趋势&#xff0c;AI工具的类别也从最初的AI文本生成、AI绘画工具&#xff0c;逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

【爱上C++】详解string类2:模拟实现、深浅拷贝

在上一篇文章中我们介绍了string类的基本使用&#xff0c;本篇文章我们将讲解string类一些常用的模拟实现&#xff0c;其中有很多细小的知识点值得我们深入学习。Let’s go&#xff01; 文章目录 类声明默认成员函数构造函数析构函数拷贝构造函数深浅拷贝问题传统写法现代写法…

外接电容选择不当会对晶振电路造成什么影响?

在电子设备中&#xff0c;晶振电路负责提供稳定的时钟信号&#xff0c;这对于电路的同步和正确操作至关重要。外接电容在晶振电路中发挥着关键作用&#xff0c;其选择是否得当直接影响到晶振的性能。以下是不当选择外接电容可能带来的问题&#xff1a; 频率稳定性下降&#xf…