问题标签 [horizontal-pod-autoscaling]

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 回答
1061 浏览

kubernetes - 在 Kubernetes HPA 中过度配置 Pod 资源

目前,如果我们想在 kubernetes 中使用 Horizo​​ntal Pod 自动缩放,我们需要为我们想要做的服务指定以下内容:

我有一些服务都可以使用 HPA 进行扩展。

我们可以过度提供这些服务吗?像这些服务一样,资源添加超出了 VM 可用的总资源。

更新:: 1.对问题的更多解释,2.添加图像

考虑这样一种情况:假设 pod 的请求在总可用 CPU 范围内,但限制超出了它

例如:

总可用 CPU 为 1000m 核,2 个 pod,每个请求500m 核,每个限制1000m。

首先,如果总数只有 1000m,我可以将这个限制设置为每个 1000m 吗?

如果是? 更新2: <我认为我们可以做到,就像我在下图中所做的实验一样>

过度配置集群

现在,如果 pod 2 没有使用其全部 500m 的 CPU 核心,并且 pod 1 已达到其总请求的 500m 限制,

这个吊舱现在可以使用超过 500m 的核心,而第二个核心没有使用,因为限制设置为 1000?

如果不? Update2:我想这不再有效

那么我猜无法完成过度配置?

0 投票
1 回答
770 浏览

kubernetes - 为什么 kubernetes HPA 没有缩小 pod?

我正在使用 prometheus 和适配器来扩展 HPA(自定义指标 memory_usage_bytes)。我不知道为什么 m 附加了 targetValue 并且 HPA 在不使用内存时也不会缩小 pod。

我错过了什么吗?

HPA 代码

kubectl 获取 hpa

custom.metrics.k8.io

0 投票
1 回答
44 浏览

kubernetes - Horizo​​ntal-Pod-Autoscale 仅当 CPU 负载在给定(5 分钟)内保持恒定时才缩放

我在 AWS 的 EKS 中部署了一个 k8s 集群。使用 Kubernetes 1.14 版本

Horizo​​ntal-Pod-Autoscale 仅当 CPU 负载在给定(5 分钟)内保持恒定时才缩放

因为我们想在 4-5 分钟后做出决定,如果在此期间负载仍然很高。

如果负载在 3-4 分钟后减少,则不要扩大规模,但目前我们无法找到任何方法。

horizontal-pod-autoscaler-upscale-delay已弃用。

因此,我们正在寻找可以设置 HPA 的 CPU 使用持续时间的参数。

0 投票
1 回答
1123 浏览

kubernetes - Kubernetes HPA - 如何避免因 CPU 利用率飙升而扩大规模

HPA - 如何避免因 CPU 利用率峰值而扩大规模(不是在启动时)当为不同国家/地区加载业务配置时,CPU 负载增加 1 分钟,但我们希望避免扩大那 1 分钟。

在图片下方,CurrentMetricValue 只是矩阵中的当前值或上次轮询到当前轮询持续时间的平均值--horizo​​ntal.-pod-autoscaler-sync-period

在此处输入图像描述

0 投票
1 回答
305 浏览

kubernetes - 基于集群中节点数量的水平 Pod Autoscaler 副本

我正在寻找能够在节点加入集群时自动扩展 Pod 并在删除节点时缩回的解决方案。我们在节点上运行 WebApp,这需要在计划断开节点时优雅地驱逐/终止 pod。我正在检查使用 DaemonSet 的选项,但由于我们使用 Kops 进行集群滚动更新,它忽略了 DaemonSets 驱逐(不支持标志“--ignore-daemionset”)。结果,WebApp 与我们的应用程序不可接受的节点一起“死亡”。Horizo​​ntalPodAutoscaler 覆盖部署 yaml 中设置的副本数量的能力可以解决这个问题。我想找到根据集群中节点的数量动态更改 Horizo​​ntalPodAutoscaler yaml 中的 min/maxReplicas 的方法。

任何想法如何获取节点数量并相应地更新集群中的 Horizo​​ntalPodAutoscaler yaml?或者任何其他解决问题的方法?

0 投票
1 回答
2861 浏览

kubernetes - 具有 CrashLoopBackOff 的指标服务器

我无法运行 metrics-server pod,它会出现 crashloopbackoff 错误。运行“kubectl get pods -n kube-system”我看到以下输出:

然后,运行“kubectl describe pods metrics-server -n kube-system”,我看到以下内容:

有人可以帮我找出问题所在吗?我见过很多类似的案例,但没有一个有效。此外,我在一个主节点内运行。

编辑1:发布日志输出:

提前致谢 :)

0 投票
3 回答
2594 浏览

spring-boot - Kubernetes pods 使用 TCP 连接优雅关闭(Spring boot)

我在天蓝色的云上托管我的服务,有时我会在没有任何明显原因的情况下得到“BackendConnectionFailure”,经过调查,在大多数情况下,我发现此异常与自动缩放(缩小)之间几乎同时存在相关性。

根据文档,终止宽限期默认为 30 秒,就是这种情况。pod 将被标记为终止,负载均衡器将不再考虑它,因此不再接收请求。据此,如果我的服务花费的时间远少于 30 秒,则我的应用程序中不需要 prestop 挂钩或任何特殊实现(如果我错了,请纠正我)。

如果上一段是正确的,为什么这个异常会比较频繁的发生呢?我的想法是当 pod 被标记为终止并且负载均衡器不再向 pod 转发请求时,它应该这样做。

编辑1:

架构就是这样

客户端 -> 防火墙(azure) -> API(azure APIM) -> 微服务(Spring boot) -> 后端(第三方) 或 Azure RDB,具体取决于服务

我认为异常来自 APIM,我发现此异常有两种模式:

  1. Message The underlying connection was closed: The connection was closed unexpectedly. Exception type BackendConnectionFailure Failed method forward-request

Response time 10.0 s

  1. Message The underlying connection was closed: A connection that was expected to be kept alive was closed by the server. Exception type BackendConnectionFailure Failed method forward-request

Response time 3.6 ms

0 投票
1 回答
469 浏览

kubernetes - 如何查看/调试 Kubernetes 自定义指标值 (custom.metrics.k8s.io)?

我正在使用它将指标从 Prometheus 导出到 Kubernetes。这似乎奏效了。我可以(成功)看到指标名称

这显示了指标的名称,但不显示值。我如何查看这些值?

我打算将它与 Horizo​​ntalPodAutoscaler 一起使用。我想看看 Kubernetes 度量系统中的度量值是什么样的,以帮助理解和正确配置它。

0 投票
0 回答
204 浏览

kubernetes - Kubernetes ResourceQuota 和 Autoscale

我有一个 azure Kubernetes 集群,其中包括 2 种类型的节点池。假设vm1 有 2vcpu & 8GB ram,而vm2 有 8vcpu & 32GB ram。此外,我有一组功能齐全的应用程序,它们通过使用nodeSelector/agentpool在这两个节点池上 运行(一些被定义为在节点池 1 上运行,其他在节点池 2 上运行)。两个节点池都设置为 vm 级别自动缩放,最小节点池为 1,它可以扩展到 3。我的应用程序与水平 pod 自动缩放和 vm (nodepool)完美配合使用当前设置进行级别缩放。现在我想建立一个新的集群,包括两个定义了 ResourceQuota 的命名空间。我的问题是假设我们将 2 个命名空间定义为 QA 和 Dev 并分配一些 ResourceQuota ,例如,

那么虚拟机级别的规模将如何发生,我该如何测试呢?有人可以解释一下吗?

我现在的架构是这样的, 在此处输入图像描述

我想要这样的东西,启用 vm 级别缩放, 在此处输入图像描述

0 投票
2 回答
1450 浏览

kubernetes - 即使使用量低于阈值,Kubernetes 部署也不会缩减

我很难理解我的水平 pod 自动缩放器发生了什么。

如果内存或 CPU 使用率超过 80%,我正在尝试扩大我的部署。

这是我的 HPA 模板:

问题是,即使使用率低于 80%,它也已经坐了 3 个副本好几天了,我不明白为什么。

这是 top 命令的输出:

每个 pod 消耗大约 60% 的请求内存(因此它们低于 80% 的目标):

这是我的部署:

我手动缩小到 2 个副本,它会无缘无故地立即恢复到 3 个:

有人知道发生了什么吗?