问题标签 [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 回答
1134 浏览

kubernetes - 由于 403 错误,HPA 无法获取指标

我在 hpa 中使用了以下指标

但 hpa 无法获取指标

Warning FailedGetPodsMetric 14s (x6 over 1m) horizontal-pod-autoscaler unable to get metric packets-per-second: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/packets-per-second: googleapi: Error 403: Permission monitoring.metricDescriptors.get denied (or the resource may not exist)., forbidden

我在专用节点池上运行 pod,每个节点都在服务帐户下运行。

服务帐户确实具有这些 iam 角色

监控查看器,监控指标编写器

不确定如何修复此错误。非常感谢任何指针。谢谢。

0 投票
5 回答
11911 浏览

kubernetes - 在 Kubernetes 中,如何在空闲时将部署扩展到零

我在 Kubernetes 集群上运行一个资源相当密集的服务来支持 CI 活动。只需要一个副本,但它使用大量资源(16 cpu),并且通常只在工作时间(工作日,大约上午 8 点到下午 6 点)需要。我的集群在云中运行并设置了实例自动缩放,因此如果此服务缩放为零,则可以终止该实例。

该服务是无法修改的第三方代码(嗯,不容易)。这是一个相当典型的 HTTP 服务,除了它的工作是相当 CPU 密集的。

有哪些选项可以在空闲时自动将此部署缩减为零?

我宁愿不在工作时间设置一个时间表来扩大/缩小它,因为 CI 活动偶尔会在正常时间之外执行。我希望缩放是动态的(例如,当空闲 > 30 分钟时缩放到零,或者当传入连接到达时缩放到一)。

0 投票
1 回答
1095 浏览

kubernetes - kubernetes pod 重新调度并在不同命名空间部署后将在不同节点运行

我有两个命名空间 qa 和 dev。qa 和 dev pod 可以在同一个节点上运行。当我删除开发版本/pod 时,k8 只是重新安排了不同节点中的一些 qa pod。当我启用自动缩放时也会发生类似的事情,即缩小时,k8 将重新调度相同/不同命名空间中的其他服务 pod。1) 如何防止 k8 重新调度 2) 在自动缩放的情况下如何处理?

0 投票
1 回答
356 浏览

kubernetes - 在 GKE 上的 Kubernetes Horizo​​ntalPodAutoscaler 上描述的指标是什么?

我设置了我的 Horizo​​ntalPodAutoscaler,如下所述https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling根据来自我的 Pub/Sub 的未确认消息的数量来监听缩放。我的愿望是,如果有超过 1 条未确认的消息,则 pod 会扩展。当我跑步时,k describe hpa我得到:

返回的指标数据让我感到困惑。根据控制台指标,当我运行该命令时,未确认的知识消息数量约为 4。所以我不明白是什么200m意思?为什么不说4?

这是我对 HPA 的配置

0 投票
1 回答
264 浏览

kubernetes - Kubernetes:如何在 Google Kubernetes Engine (gke) 中为 kube-controller-manager 添加标志

我在 gke 中有一个基于外部指标(pubsub 订阅)与水平 pod 自动缩放器相关联的部署。

出于某种原因,自动缩放器在我的 pod 上产生了涟漪(或颠簸)效果,使它们每分钟都被放大和缩小到相同的值(如下图所示)。

每 1 分钟上下移动的 Pod 和节点图

我发现kube-controller-manager组件有一个标志,它在缩减事件之间引入了冷却时间 ( --horizontal-pod-autoscaler-downscale-stabilization)。

但是,我无法访问 GKE 中kube-controller-manager的配置。有什么解决方法吗?如果无法在 GKE 中进行配置,是否有其他方法可以减轻这种影响?

0 投票
1 回答
862 浏览

kubernetes - Kubernetes HPA(带有自定义指标)扩展策略

从 Kubernetes v1.18 开始,v2beta2 API 允许通过 Horizo​​ntal Pod Autoscalar (HPA) 行为字段配置缩放行为。我打算将带有自定义指标的 HPA 应用于 StatefulSet

我正在查看的用例是使用自定义指标(例如我的应用程序上的用户会话数)进行横向扩展,但 HPA 根本不会缩减。K8s SIG-Autoscaling 增强功能也描述了此用例 - “HPA 的可配置缩放速度 >> 故事 4:照常放大,不要缩小”

用户会话可以保持活跃几分钟到几小时。从 StatefulSet 的 1 个副本开始,随着用户会话数达到上限(使用 Prometheus 收集器公开,然后使用 HPA 自定义指标选项进行配置),应用程序 pod 将向外扩展。新的 Pod 将开始为新用户提供服务。

由于这是一个 StatefulSet 并且不能只是突然缩小,因此我正在寻求有关在新副本上的用户会话下降到 0 时缩小的方法的帮助。上面的链接说缩小可以通过一个单独的过程来控制。不知道该怎么做?寻找一些指针。

谢谢。

0 投票
1 回答
887 浏览

kubernetes - 定义了 HPA 的 kubernetes 集群是否需要 PDB?

我有一个 Kubernetes 集群。通过策略,我确保所有服务都定义了请求、限制和 HPA,以便我可以顺利进行自动缩放。我还定义了 ResourceQuota。在这种情况下,是否也需要定义 PDB?请指教。

0 投票
1 回答
192 浏览

kubernetes - 批量水平 pod 自动缩放

查看HPA(对此很新),我正在处理的用例是将相同的 HPA 规则应用于所有部署(在特定命名空间中)。

所以我理想情况下想要实现这样的东西:

我希望通过标签/选择器来处理这个问题,而所有部署对象都标有特定标签(例如enableHpa),并以某种方式在内部使用选择器/macthLabelsHorizontalPodAutoscaler将其应用于所有这些对象。但它看起来name是必需的,并且需要针对特定​​的部署对象。

关于如何处理这种情况并避免hpa为每一个deployment按名称创建 s 的任何建议?

0 投票
1 回答
202 浏览

kubernetes - 从 pod 中访问副本集信息

我想从 pod 内部访问副本的数量以及给定 pod 的当前副本 id。例如,如果任何给定 pod 有 3 个副本,例如 foo_A、foo_B 和 foo_C,按特定顺序创建,是否可以在 pod 中提供副本集中的副本总数和 pod 索引?

我也明白,随着旧的 pod 被杀死而新的 pod 出现,副本集中的 pod 索引可以动态变化。

我知道这可以使用 Downward API 来实现,但是要访问哪些字段?有人可以帮忙吗?

0 投票
1 回答
607 浏览

amazon-web-services - Kubernetes HPA:将 HPA 日志作为事件发送到 aws cloudwatch

我正在 AWS 中开发 EKS 集群。我们有一个应用程序,它是内存密集型的。因此,我添加了一个 HPA,它的内存利用率为 60%。我们希望在 cloudwatch 中只有这些信息,因此我们可以相应地扩展我们的服务器。我尝试了容器洞察力,但这是一种矫枉过正。

有什么方法可以在 cloudwatch 中获取 Kubernetes HPA 日志作为事件?

高压钠灯:

版本:

EKS 集群在 1.15 上运行