k8s hpa扩展伸缩详解

k8s hpa扩展伸缩详解

首先来说一下pod资源的分配:

 

limits: 申请内存最大值,超过这个值就会触发oom
requests: 申请内存最小值(此处个人将他理解为pod预分配内存。为什么这样理解下面有说明)

 

hpa: 内存或cpu使用量达到百分之80开始扩容,yaml文件如下:

[root@k8s-node01 hpa]# cat hpa-default.yaml 
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: servername
  namespace: pro
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: servername
  minReplicas: 2
  maxReplicas: 4
  metrics:
  - type: Resource
    resource:
      name: memory
      targetAverageUtilization: 80    
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 80

 ### 

resource内存参考的值,仅仅作为参考: 服务启动占用内存 * 2.5

 

hpa负载计算方式:


pod使用的量 * pod数 / request量 / pod数量

 

扩容副本数计算:

 

期望副本数 = ceil[当前副本数 * (当前指标 / 期望指标)]

 

官方连接: https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details

posted @ 2022-08-31 11:58  念长卿  阅读(208)  评论(0编辑  收藏  举报