企业运维实战--k8s学习笔记14.HPA自动弹性伸缩

企业运维实战--k8s学习笔记14.HPA自动弹性伸缩

  • HPA实例查看监控-CPU、MEM
    • HPA实例监控CPU
    • HPA实例监控CPU+MEM


HPA实例查看监控-CPU、MEM

HPA(Horizontal Pod Autoscaler)Pod自动弹性伸缩,K8S通过对Pod中运行的容器各项指标(CPU占用、内存占用、网络请求量)的检测,实现对Pod实例个数的动态新增和减少。

HPA伸缩过程:
收集HPA控制下所有Pod最近的cpu使用情况(CPU utilization)
对比在扩容条件里记录的cpu限额(CPUUtilization)
调整实例数(必须要满足不超过最大/最小实例数)
每隔30s做一次自动扩容的判断
CPU utilization的计算方法是用cpu usage(最近一分钟的平均值,通过metrics可以直接获取到)除以cpu request(这里cpu request就是我们在创建容器时制定的cpu使用核心数)得到一个平均值,这个平均值可以理解为:平均每个Pod CPU核心的使用占比。

HPA进行伸缩算法:
计算公式:TargetNumOfPods = ceil(sum(CurrentPodsCPUUtilization) / Target)
ceil()表示取大于或等于某数的最近一个整数
每次扩容后冷却3分钟才能再次进行扩容,而缩容则要等5分钟后。
当前Pod Cpu使用率与目标使用率接近时,不会触发扩容或缩容:
触发条件:avg(CurrentPodsConsumption) / Target >1.1 或 <0.9

HPA实例监控CPU

官方文档参考:https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

准备镜像
企业运维实战--k8s学习笔记14.HPA自动弹性伸缩_第1张图片
企业运维实战--k8s学习笔记14.HPA自动弹性伸缩_第2张图片

准备工作目录

mkdir hpa
cd hpa/

在这里插入图片描述

配置压力测试deployment

vim deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache
spec:
  selector:
    matchLabels:
      

你可能感兴趣的:(运维,kubernetes,k8s,容器,hpa)