Kubernetes HPA 是如何工作的?

How Kubernetes HPA works?

我正在尝试将 Horizo​​ntal Pod Autoscaling (HPA) 添加到我的 Kubernetes 部署中。我的应用程序由 5 个连接在它们之间的微服务组成。我有一个 NodePort(Traefik 服务)负责控制来自外部的流量。 该调用是一个 HTTPS POST,它发送一个由应用程序处理的 csv 文件。它可以通过命令行或使用网络应用程序 (UI) 发送。 curl 命令将类似于:

curl https://our_app_name -X POST -F "file=@test.csv"

我对 HPA 的功能有以下疑问,

  1. HPA 如何在副本之间分配调用? Kubernetes 是否能够并行计算,即在副本之间划分调用或每个调用只转到一个副本?

  2. 一个副本可以同时参加多个通话吗?

  3. 在 HPA 规范中,例如这里:

  - type: Resource
    resource:
      name: cpu
      target:
       type: Utilization
        averageUtilization: 50

这 50% 是多少?它是 pod 还是集群的 CPU 的 50%?

在此先感谢您的帮助!

  1. 每个调用只转到 pod 的一个副本
  2. 您可以通过 ingress/service 向 pod 发送尽可能多的请求,但它最终会到达 pod 的副本之一
  3. with averageUtilization: 50 Horizo​​ntalPodAutoscaler 将尝试确保每个 pod 消耗其 requested CPU 的大约 50%。这不是节点的CPU。