繁体   English   中英

Azure Kubernetes - 副本与 HPA?

[英]Azure Kubernetes - replica vs 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 扩大规模时,它会增加一个“部署”副本还是三个“部署”副本?

是的,答案是,根据我对 AKS 的观察。

deployment.yaml 会询问所需的副本数量,而 hpa 会根据配置的指标对此进行更改。

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

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

重要的是要添加到先前的答案,即部署spec.replicas和 HPA spec.minReplicas可能会发生冲突。 当两者都配置时,可能会出现一些意外行为。

如果有 HPA,它会根据其设置管理副本数量。 但是,虽然部署由 HPA 控制,但如果您应用具有设定数量的副本的部署配置,它将覆盖当前所需的副本数量,并且可能会意外地扩展您的部署。

例如,如果您将部署spec.replicas设置为 1,并且 HPA 当前将您的部署扩展到 5 个副本,那么当您应用部署配置时,它会将所需副本的数量设置为 1 并立即缩减您的部署。 然后 HPA 收回控制权,将所需的副本数量更改回 5 并再次扩大规模。 这是这个问题在我的 Grafana 仪表板上的外观,它跟踪正在运行的副本数量

有关该主题的更多信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM