首页 > 解决方案 > Azure Kubernetes - 副本与 HPA?

问题描述

副本和 HPA 有什么区别?

对于示例,以下部署配置了 3 个副本

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello
spec:
  **replicas: 3**

以及以下具有 2-20 个副本的 HPA

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: hello
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: hello
  **minReplicas: 2
  maxReplicas: 20
metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 80**

这是否意味着上述 HPA 将控制副本的总数,而与“deployment.yaml”中定义的内容无关?当 HPA 扩大规模时,它会增加一个“部署”副本还是三个“部署”副本?

标签: azurekubernetes

解决方案


是的,答案是,基于我对 AKS 的观察。

deployment.yaml 请求所需的副本数量,hpa 会根据配置的指标进行相关的变化。

部署对象中所需的状态或副本(当您执行 kubectl get deploy 时)将始终提供当前副本以及所需的副本,您可以在那里看到负载的变化。

所以它将从 3 个实例开始,然后它会尝试保持最小副本始终可用(因此 hpa 中的最小副本和部署文件中的副本保持相同),然后根据提供的指标的负载计算,它将扩展向上或向下到最小或最大定义的水平。


推荐阅读