当前位置: 首页 > news >正文

k8s之HPA

目录

1.HPA

2.部署 metrics-server

3.部署 HPA

4.总结


1.HPA

HPA(Horizontal Pod Autoscaling)Pod 水平自动伸缩,Kubernetes 有一个 HPA 的资源,HPA 可以根据 CPU 利用率自动伸缩一个 Replication Controller、 Deployment 或者Replica Set 中的 Pod 数量。

(1)HPA 基于 Master 上的 kube-controller-manager 服务启动参数 --horizontal-pod-autoscaler-sync-period 定义的时长(默认为15秒),周期性的检测 Pod 的 CPU 使用率。

(2)HPA 与之前的 RC、Deployment 一样,也属于一种 Kubernetes 资源对象。通过追踪分析 RC 控制的所有目标 Pod 的负载变化情况, 来确定是否需要针对性地调整目标Pod的副本数,这是HPA的实现原理。

(3)metrics-server:集群插件组件,用于收集和聚合从每 kubelet 中提取的资源指标。API Server 提供 Metrics API 以供 HPA、VPA和 kubectl top 命令使用。Metrics Server 是 Metrics API 的参考实现。

2.部署 metrics-server

上传components.yaml文件
kubectl apply -f components.yaml
kubectl top node

3.部署 HPA

//创建用于测试的 Pod 资源,并设置请求资源为 cpu=200m
vim hpa-pod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:run: php-apachename: php-apache
spec:replicas: 1selector:matchLabels:run: php-apachetemplate:metadata:labels:run: php-apachespec:containers:- image: mirrorgooglecontainers/hpa-examplename: php-apacheimagePullPolicy: IfNotPresentports:- containerPort: 80resources:requests:cpu: 200mlimits:cpu: 500m
---
apiVersion: v1
kind: Service
metadata:name: php-apache
spec:ports:- port: 80protocol: TCPtargetPort: 80selector:run: php-apachekubectl apply -f hpa-pod.yamlkubectl get pods

//使用 kubectl autoscale 命令创建 HPA 控制器,设置 cpu 负载阈值为请求资源的 50%,指定最少负载节点数量为 1 个,最大负载节点数量为 10 个
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

4.总结

HPA的工作原理:利用metrics-server组件定期的(默认为15秒)收集Pod资源的CPU或内存平均负载情况,根据HPA资源配置的CPU或内存的requests资源量阈值百分比来动态调整Pod的副本数量。
HPA扩容时,Pod副本数量上升会比较快;缩容时,Pod副本数量下降会比较慢(默认冷却时间为5m)

http://www.lryc.cn/news/425390.html

相关文章:

  • fun状态上传,并可手动控制
  • 【Canvas与艺术】四扇叶结
  • 基于DVWA-Brute Force(LowMedium)的渗透测试
  • 水库大坝安全预警系统的作用
  • 容器化部署ES集群
  • 使用排名前三的华为解锁工具来绕过忘记的华为锁屏密码
  • 战神之父和前暴雪总裁都很期待《黑神话》:太酷想玩
  • 用户体验的优化:观测云在用户行为分析中的应用
  • ModelScope 部署 Flux 模型
  • ArkTs基础语法-声明式UI-基本概念
  • Day26 线程学习
  • eNSP 华为三层交换机实现VLAN间通信
  • 【多模态大模型】LLaMA in arXiv 2023
  • (转)java中restful接口和普通接口的区别
  • 灵办AI免费ChatGPT4人工智能浏览器插件快速便捷(多功能)
  • VulnHub:BlueMoon
  • 处理filter里抛出的异常
  • IndexedDB深度解析:JavaScript的客户端数据库
  • C语言中的函数指针和返回值为数组的函数指针对比
  • 根据字符串的长度和字符值的大小来对字符串切片进行排序
  • RabbitMQ 的工作原理
  • WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定
  • vue3-03-创建响应式数据的几种方法
  • stm32智能颜色送餐小车(openmv二维码识别+颜色识别+oled显示)
  • 对接的广告平台越多,APP广告变现的收益越高?
  • LINUX原始机安装JDK
  • MR400D工业级带网口4G DTU:RS232/RS485 TO LTE深度测评
  • 第四范式发布AI+5G视频营销产品 助力精准获客与高效转化
  • DVWA-IDS测试(特殊版本)
  • 轻度自闭症的温柔启航:星启帆的康复之旅