八、K8S之HPA自动扩缩容
HPA
一、概念
HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩)是 Kubernetes 中的一种特性,其作用是根据资源使用情况自动调整 Pod 的副本数,以实现应用程序的自动扩展和收缩。
HPA 可以根据 CPU 使用率或其他自定义指标来自动扩展或收缩 Pod。每隔30s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况,Pod 的 CPU 使用率超过了 HPA 的目标值,那么 HPA 将创建更多的 Pod 来处理更多的工作负载。反之,如果 CPU 使用率降低,那么 HPA 将删除一些 Pod 以减少资源消耗。这使得集群可以根据负载需求动态扩展或收缩应用程序。
HPA 常用于处理负载波动的应用程序,例如 Web 服务器、API 服务等。通过设置合适的 HPA 目标值和最小/最大 Pod 数量,可以确保集群始终保持在正确的资源使用级别,从而避免资源浪费和服务中断。通常用于 Deployment,不适用于无法扩/缩容的对象,如 DaemonSet
在创建 HPA 时,您需要指定以下参数:
- 目标资源:每个 Pod 根据 HPA 所监视的资源管理器对象进行计算。
- 目标平均使用率:这是指将资源用量(如 CPU 或内存)与每个 Pod 的请求资源量相对比。HPA 根据此指标确定要在群集中启动的 Pod 的数量。
- 最小 Pod 数量和最大 Pod 数量:根据当前的负载情况,HPA 将自动扩展或收缩 Pod 的数量,但是不能超出设置的最小和最大 Pod 数量。
通过 HPA 功能,Kubernetes 可以轻松地管理和调整应用程序的资源使用,提高了应用程序的可用性和容错性,在高负载时提供更好的响应能力,并减少了内存和 CPU 等资源的浪费。
二、使用
- 创建
kubectl autoscale deploy nginx-deploy --cpu-percent=20 --min=2 --max=5
- 获取 HPA 信息
kubectl get hpa
三、测试脚本
while true; do wget -q -O- http://192.168.31.100:30906 > /dev/null ; done
相关文章:
八、K8S之HPA自动扩缩容
HPA 一、概念 HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩)是 Kubernetes 中的一种特性,其作用是根据资源使用情况自动调整 Pod 的副本数,以实现应用程序的自动扩展和收缩。 HPA 可以根据 CPU 使用率或其他自…...
损失函数总结(二):L1Loss、MSELoss
损失函数总结(二):L1Loss、MSELoss 1 引言2 损失函数2.1 L1Loss2.2 MSELoss 3 总结 1 引言 在上一篇博文中介绍了损失函数是什么以及为什么使用损失函数,从这一篇博文就开始关于损失函数有哪些进行进一步的介绍。这里放一张损失函…...
力扣(LeetCode)2530. 执行 K 次操作后的最大分数(C++)
贪心优先队列 请看答案需求:得到最大分数。易猜到,得到最大分数的取法是每次取数组中最大的数字(贪心思路)。 问题转化为:如何快速找到数组中最大的数字,根据问题规模 k 1 0 5 k10^5 k105,维护优先队列即可 O ( k l…...
C# 快速简单反射操作
文章目录 前言新反射使用BindingFlags以公有属性使用举例运行结果 前言 我之前写过一篇博客,是关于C# 反射的,我那时候使用的C# 反射写起来还是比较麻烦,需要获取Properies,再遍历Property,再找到对应Property,再使用…...
【python高级】设计模式、类工厂、对象工厂
一、说明 最近试着读Design pattern, 不过有些概念实在太抽象了, 整理一下自己所学抽象工厂的精神,就是要有abstract class(not implement),而所有不同种类的对象,都是继承这个abstract class&a…...
Flink的算子列表状态的使用
背景 算子的列表状态是平时比较常见的一种状态,本文通过官方的例子来看一下怎么使用算子列表状态 算子列表状态 算子列表状态支持应用的并行度扩缩容,如下所示: 使用方法参见官方示例,我加了几个注解: public class Bufferin…...
使用 Github Actions 工作流自动部署 Github Pages
GitHub-Actions actions顾名思义就是一堆动作,是一个持续集成服务,持续集成包含了拉代码、运行测试、编译代码、登录远程服务器,发布到第三方服务等等的操作,GitHub将这些操作称为actions。 概念:Workflows, Events,…...
Xposed hook 抖音账户信息
本篇主要讲下hook获取 抖音账户的相关信息,直接上代码。 public class DouHook {private static final String TAG "DouHook";public static void hook(XC_LoadPackage.LoadPackageParam lpparam) {Log.e(TAG, "DouHook start");if (lpparam …...
回顾 | E³CI效能认知与改进论坛,助力企业研发效能度量和提升
2023年8月,TiD质量竞争力大会组委会和ECI专家委员会成功举办TiD大时段课程“度量驱动研发效能提升”与“ECI效能认知与改进论坛”。与会专家以《ECI软件研发效能度量规范》团体标准为要点,为企业研发效能度量和提升分享诸多实践成果与经验。 《ECI软件研…...
科技的成就(五十二)
405、微信公众平台正式上线 "1995 年 8 月 24 日,微软发布 Windows 95。Windows 95 极大地改进了前续系统的图形用户界面,首次推出了开始菜单、任务栏、最大化、最小化窗口以及关闭按钮。此外,Windows 95 最大程度兼容当时的 MS-DOS 和 …...
【23种设计模式】装饰器模式
个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...
解决IDEA中SpringBoot项目创建多个子模块时配置文件小绿叶图标异常问题
在新建子模块下创建配置文件: 在子模块gateway中新建的配置文件,正常情况下配置文件左侧是小树叶标识,而这次新建application-dev.yml是个小树叶标识,bootstrap.yml是个方框。 看其他方案都是在project structure中设置,但未显示…...
【马蹄集】—— 概率论专题
概率论专题 目录 MT2226 抽奖概率MT2227 饿饿!饭饭!MT2228 甜甜花的研究MT2229 赌石MT2230 square MT2226 抽奖概率 难度:黄金 时间限制:1秒 占用内存:128M 题目描述 小码哥正在进行抽奖,箱子里有…...
Spring 6整合单元测试JUnit4和JUnit5
单元测试:JUnit 在之前的测试方法中,几乎都能看到以下的两行代码: ApplicationContext context new ClassPathXmlApplicationContext("xxx.xml"); Xxxx xxx context.getBean(Xxxx.class);这两行代码的作用是创建Spring容器&…...
【好书推荐】深入理解现代JavaScript
作者介绍 T. J. Crowder是一位拥有30年经验的软件工程师。在他的整个职业生涯中,他至少有一半时间是在使用JavaScript从事开发工作。他经营着软件承包和产品公司Farsight Software。他经常在Stack Overflow上为人们提供帮助,他是十大贡献者之一和JavaScr…...
高效协同: 打造分布式系统的三种模式
在构建分布式系统时,分布式协调是否总是必要选项?本文通过一些实际的例子讨论了这一问题,并通过把问题区分为是否具有单调性做为是否需要分布式协调的标准。原文: Avoiding Coordination Cost: Three Patterns for Building Efficient Distri…...
机器学习-无监督学习之聚类
文章目录 K均值聚类密度聚类(DBSCAN)层次聚类AGNES 算法DIANA算法 高斯混合模型聚类聚类效果的衡量指标小结 K均值聚类 步骤: Step1:随机选取样本作为初始均值向量。 Step2:计算样本点到各均值向量的距离,…...
智能垃圾桶丨悦享便捷生活
垃圾桶是人们日常生活所必不可少的必需品,它让生活中所产生的垃圾有了一个正确的存放地方。随着生产技术的迅速发展,垃圾桶也得以更新换代。由最初的简单式的圆筒式垃圾桶,到现在出现的感应式垃圾桶、智能语音控制垃圾桶,垃圾桶也…...
【数据结构】线性表(一)线性表的定义及其基本操作(顺序表插入、删除、查找、修改)
目录 一、线性表 1. 线性表的定义 2. 线性表的要素 二、线性表的基本操作 三、线性表的顺序存储结构 1. 定义 2. 顺序表的操作 a. 插入操作 b. 删除操作 c. 查找操作 d. 修改操作 e. 代码实例 一、线性表 1. 线性表的定义 一个线性表是由零个或多个具有相同…...
MyBatis的自定义插件
MyBatis的自定义插件 前置知识 MyBatis 可以拦截的四大组件 Executor - 执行器StatementHandler - SQL 语句构造器ParameterHandler - 参数处理器ResultSetHandler - 结果集处理器 自定义 MyBatis 插件 /*** 打印 sql 执行的时间插件*/ Intercepts(// 指定拦截器拦截的对象…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
