问题标签 [kubernetes-hpa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
162 浏览

kubernetes - 多个副本/Pod 如何扩展 Kubernetes?

据我了解,在很多人访问您的网站并调用 Kubernetes 集群提供的服务的情况下,使用多个副本以及自动扩展应该会有所帮助。

副本如何帮助扩展?

这些额外的 pod 不都只是在同一台计算机上运行,​​资源不变吗?
这意味着它们都受到恒定数量的 CPU 和内存的限制。

0 投票
1 回答
5812 浏览

kubernetes - Pod 副本缩减在 Kubernetes Horizo​​ntal Pod Autoscaler 中是如何工作的?

我的理解是,在 Kubernetes 中,使用 Horizo​​ntal Pod Autoscaler 时,如果该targetCPUUtilizationPercentage字段设置为 50%,并且所有 pod 副本的平均 CPU 利用率高于该值,HPA 将创建更多副本。一旦平均 CPU 在一段时间内下降到 50% 以下,它就会降低副本的数量。

这是我不确定的部分:
如果 pod 上的 CPU 利用率为 10%,而不是 0%,会怎样?HPA 是否仍会终止副本?
10% 的 CPU 并不多,但由于它不是 0%,因此某些任务当前正在该 pod 上运行。如果这是一个持续时间很长的任务(几秒钟)并且 HPA 决定终止 pod,则该任务将不会完成。

HPA 是否仅在其 CPU 利用率为 0% 时才终止 Pod,还是在看到该值低于时终止它们targetCPUUtilizationPercentage

HPA 如何决定删除哪些 pod?
谢谢!

0 投票
1 回答
232 浏览

kubernetes - 将清单文件应用于应用了水平自动缩放器的部署时,保持“幂等性”的最有效方法是什么?

假设您有一个 CI/CD 管道,作为该管道的一部分,您有一个部署清单文件,您可以在其中更改一些值并重新部署。

另一方面,您的部署也是水平自动缩放的,它通过修改部署清单文件以扩展到您设置的副本来工作。

然后有一天,您的水平自动缩放器已经旋转了 40 个 pod 以满足需求,然后您开始运行您的管道,该管道将部署清单设置为一个副本。应用此文件的那一刻,它将杀死所有 pod 副本,这意味着您的缩放器需要将它们恢复,这可能会影响数据和服务,这是不好的。

如何应用清单文件以使其不影响缩放的副本?我能想到的只是自动检查副本数量并更改部署清单以反映这一点,但这似乎是一个非常丑陋的解决方案。

我猜必须有更好的解决方案,我只是找不到它,或者我在寻找错误的地方......

0 投票
2 回答
2014 浏览

kubernetes - Kubernetes 自动缩放不起作用 - 显示未知

关于这个主题有很多问题,我尝试了很多东西,但仍然没有用。

我是 Kubernetes 新手。我有一个 Kubernetes 集群,有 2 个节点(1 台 PC,另一台 PC 上的 1 个 VM)、1 个主节点、1 个节点。我启动了一个网站(Docker Image)并且 Pod 在节点(不是主节点)上运行。现在我想自动缩放 Pod,这就是我所做的:

  1. 设置--request='cpu=50m'到吊舱
  2. 创建 hpa:kubectl autoscale deployment testwebsite --min=1 --max=4 --cpu-percent=25
  3. 用过的:kubectl get hpa -w

现在存在输出显示为当前值的问题。我读了很多我必须将请求分配给 pod,就像我一样。通过以下方式检查:kubectl get pod testwebsite --out=yaml

我还创建了度量服务器版本 1.8+。确保它通过以下方式运行:kubectl get pods --all-namespaces

之后,我尝试调试 HPA 并通过以下方式对其进行了研究:

这向我展示了这一点:

10 多分钟后,它不会显示当前值,即使 CPU 使用率为 50-100%,它也不会按比例放大。

正如我所说,我是 Kubernetes 新手,我真的希望有人能帮助我。

此致,

Nico 又名 Myridor

编辑:在两个节点上使用 Ubuntu 18.04 LTS | Kubernetes 版本:1.14.0

0 投票
1 回答
73 浏览

kubernetes - 自定义指标 API 服务器不在 Go 中

我想实现自定义指标 API 服务器以与 HPA 一起使用。我们有专有的监控系统,在 C# 中有客户端库,但我在网上看到的所有实现都在 Go 中。

HPA 调用的 REST API(请求和响应)是否有定义?或者这只能在 Go 中(出于某种原因)?

我可以使用在 Go 和我的 C# 服务器之间创建一个代理服务器,但我宁愿直接从 HPA 访问我的服务器

0 投票
2 回答
489 浏览

kubernetes - 在本地 Kubernetes 集群中使用 Kafka Exporter 的 HPA

我一直在尝试使用来自 Kafka-exporter 的 Metrics 来实现 Kubernetes HPA。Hpa 支持 Prometheus,因此我们尝试将指标写入 prometheus 实例。从那里开始,我们不清楚要采取的步骤。有没有详细解释的文章?

我关注了 https://medium.com/google-cloud/kubernetes-hpa-autoscaling-with-kafka-metrics-88a671497f07

在 GCP 中同样如此,我们使用了堆栈驱动程序,并且实现就像一个魅力。但是,我们在本地设置中遇到了困难,因为堆栈驱动程序需要被 Prometheus 替换

0 投票
0 回答
198 浏览

kubernetes - Kubernetes 自定义 Autoscaler Prometheus 适配器扩展不正确

我们正在使用 prometheus 适配器来允许在 k8s 中自定义指标自动缩放。我们已经设置了 HPA 获取指标的所有设置,但即使指标低于目标,它也表现出不正确的放大。

轮询指标 api 服务器,我们可以看到正确的指标。 在此处输入图像描述

随着时间的推移,我们可以看到 prometheus 中的指标,其中值永远不会超过 25%,但容器的缩放仍然发生在 1-4 之间。 在此处输入图像描述

我们可以看到 pod 的目标值为 100,但显示了从 1 扩展到 4 的历史记录。 在此处输入图像描述

以及 prometheus 适配器中的规则配置。 在此处输入图像描述

Pod Helm 配置 在此处输入图像描述

下一步检查的任何帮助或指导都会很棒。预期的结果是我们不应该看到任何自动缩放,因为目标 100 总是大于指标。


更新 1:跑在手表上,得到了这个 在此处输入图像描述

这来自 prometheus -v 8 在此处输入图像描述 在此处输入图像描述

0 投票
4 回答
1292 浏览

kubernetes - 水平 pod Autoscaler 在 GKE 上过于激进地扩展自定义指标

我在 Google Kubernetes Engine 上有以下 Horizo​​ntal Pod Autoscaler 配置,可以通过自定义指标扩展部署 -RabbitMQ messages ready count针对特定队列:foo-queue.

它正确地获取度量值。

插入 2 条消息时,它会将部署扩展到最多 10 个副本。我希望它可以扩展到 2 个副本,因为 targetValue 是 1 并且有 2 条消息准备好了。

为什么它会如此积极地扩展?

HPA 配置:

0 投票
2 回答
5961 浏览

kubernetes - HPA 缩减未正确发生

我已经为我的部署创建了 HPA,它可以很好地扩展到最大副本(在我的情况下为 6),当负载将其规模缩小到 5 但它应该达到我的原始副本状态(在我的情况下为 1)为负载变得正常。我在 30-40 分钟后验证了我的应用程序仍然有 5 个副本。它应该是 1 个副本。

0 投票
3 回答
393 浏览

kubernetes - Kubernetes HPA 自动扩展速度

我们为应用程序定义了 HPA,使其具有最小 1 个和最大 4 个副本,以 80% cpu 作为阈值。

我们想要的是,如果 pod cpu 超过 80%,应用程序需要一次扩展 1 个。相反,正在发生的事情是应用程序正在扩大到最大数量的副本。

我们如何定义一次缩放 1 个 pod 的缩放速度。同样,如果其中一个 pod 消耗超过 80% 的 cpu,则再扩展一个 pod,但不是最大副本数。

让我知道我们如何实现这一目标。