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


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

相关推荐
取谖慕12.33 分钟前
Harbor仓库从讲解到部署实战
docker·harbor
逍遥德2 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
名字还没想好☜2 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂3 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
Baron X3 小时前
Gitea Docker 部署教程
docker·gitea
sulikey5 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
spider_xcxc6 小时前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
窝子面6 小时前
认识Docker与启动容器与镜像的关系
运维·docker·容器
张忠琳19 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
Elastic 中国社区官方博客20 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana