K8S-HPA水平扩缩容

HPA全称是 Horizontal Pod Autoscaler,也就是对k8s的workload的副本数进行自动水平扩缩容(scale)机制,也是k8s里使用需求最广泛的一种Autoscaler机制.

k8s被誉为新一代数据中心操作系统(DCOS),说到操作系统我们自然想到其定义:管理计算机的软硬件资源的系统,k8s也一样其核心工作也是管理整个集群的计算资源,并按需合理分配给系统里的程序(以Pod为基础的各种workload)。

其本质是解决资源与业务负载之间供需平衡的问题,随着业务需求和部署规模的增大,k8s集群就要相应扩容计算资源,集群扩容的最直接的办法是新增资源,一般单机器很难垂直扩展(k8s node也不支持),所以一般都是直接增加节点。但是随着机器的不断增加成本也不断加大,而实际上大量服务大部分时间负载很低导致机器的整体使用率很低,一方面业务为了应对每日随机流量高峰会把副本数尽量扩得很高,另一方面业务方并不能准确评估服务实际需要的CPU等资源,也出现大量浪费。

为了解决业务服务负载时刻存在的巨大波动和资源实际使用与预估之间差距,就有了针对业务本身的"扩缩容"解决方案: Horizontal Pod Autoscaler(HPA)和 Vertical Pod Autoscaler(VPA)

为了充分利用集群现有资源优化成本,当一个资源占用已经很大的业务需要扩容时,其实可以先尝试优化业务负载自身的资源需求配置(request与实际的差距),只有当集群的资源池确实已经无法满足负载的实际的资源需求时,再调整资源池的总量保证资源的可用性,这样可以将资源用到极致。

**Cluster-Autoscale: 集群容量(node数量)自动伸缩,跟自动化部署相关的,依赖iaas的弹性伸缩,主要用于虚拟机容器集群**

**Vertical Pod Autoscaler: 工作负载Pod垂直(资源配置)自动伸缩,如自动计算或调整deployment的Pod模板limit/request,依赖业务历史负载指标**

**Horizontal-Pod-Autoscaler: 工作负载Pod水平自动伸缩,如自动scale deployment的replicas,依赖业务实时负载指标**

创建文件vim pod1.yml

执行:kubectl apply -f pod1.yml

查看pod在那个node节点运行:kubectl get po -owide

while true;do kubectl top pod && sleep 2;done

在对应节点进行压力测试:ab -n 100000 -c 100 http://10.244.169.144/

第二种

添加名称:vim pod1.yml

kubectl apply -f pod1.yml

给名称加入服务:vim svc.yml

查看服务IP:kubectl get svc

在服务运行节点开启压力测试

在master节点查看内存用量

Deployment来创建Pod :vim dv1.yml(网络拉不下来,要提前导入环境压缩包myapp)

创建一个hpa自动扩缩容的pod:vim hpa.yml

kubectl apply -f hpa.yml


!!!扩容越快越好,缩容越慢服务越稳定

相关推荐
全栈攻略8 小时前
Docker 中 ROS2 工作流 Topic 验证与常用命令指南
运维·docker·容器
名字还没想好☜11 小时前
Docker 数据卷实战:volume、bind mount、tmpfs 到底怎么选,数据持久化与权限坑
运维·docker·容器·kubernetes
唐青枫11 小时前
Docker diff 详解:看清容器里到底改了什么
docker
lpfasd12313 小时前
Docker存储清理与防膨胀实践
运维·docker·容器
weixin_4445793014 小时前
Docker(下):镜像仓库管理
运维·docker·容器
DreamLife☼14 小时前
Agent开发环境搭建完全指南
python·docker·typescript·node·工业知识点
探索云原生14 小时前
Kueue + HAMi vGPU 实战:显存与算力配额管理
docker·ai·云原生·kubernetes·gpu
hoho_1215 小时前
docker中升级mysql到最新版本
mysql·docker·容器
cpolar技术支持16 小时前
Kafka Streams 窗口统计怎么验收:本地跑订单流聚合,用 cpolar 给同事看只读结果页
java·docker·kafka·cpolar·kafka streams
广州灵眸科技有限公司16 小时前
瑞芯微(EASY EAI)RV1126B 星闪使用
运维·人工智能·科技·docker·容器