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