问题标签 [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.
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 角色
监控查看器,监控指标编写器
不确定如何修复此错误。非常感谢任何指针。谢谢。
kubernetes - 在 Kubernetes 中,如何在空闲时将部署扩展到零
我在 Kubernetes 集群上运行一个资源相当密集的服务来支持 CI 活动。只需要一个副本,但它使用大量资源(16 cpu),并且通常只在工作时间(工作日,大约上午 8 点到下午 6 点)需要。我的集群在云中运行并设置了实例自动缩放,因此如果此服务缩放为零,则可以终止该实例。
该服务是无法修改的第三方代码(嗯,不容易)。这是一个相当典型的 HTTP 服务,除了它的工作是相当 CPU 密集的。
有哪些选项可以在空闲时自动将此部署缩减为零?
我宁愿不在工作时间设置一个时间表来扩大/缩小它,因为 CI 活动偶尔会在正常时间之外执行。我希望缩放是动态的(例如,当空闲 > 30 分钟时缩放到零,或者当传入连接到达时缩放到一)。
kubernetes - kubernetes pod 重新调度并在不同命名空间部署后将在不同节点运行
我有两个命名空间 qa 和 dev。qa 和 dev pod 可以在同一个节点上运行。当我删除开发版本/pod 时,k8 只是重新安排了不同节点中的一些 qa pod。当我启用自动缩放时也会发生类似的事情,即缩小时,k8 将重新调度相同/不同命名空间中的其他服务 pod。1) 如何防止 k8 重新调度 2) 在自动缩放的情况下如何处理?
kubernetes - 在 GKE 上的 Kubernetes HorizontalPodAutoscaler 上描述的指标是什么?
我设置了我的 HorizontalPodAutoscaler,如下所述https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling根据来自我的 Pub/Sub 的未确认消息的数量来监听缩放。我的愿望是,如果有超过 1 条未确认的消息,则 pod 会扩展。当我跑步时,k describe hpa
我得到:
返回的指标数据让我感到困惑。根据控制台指标,当我运行该命令时,未确认的知识消息数量约为 4。所以我不明白是什么200m
意思?为什么不说4?
这是我对 HPA 的配置
kubernetes - Kubernetes:如何在 Google Kubernetes Engine (gke) 中为 kube-controller-manager 添加标志
我在 gke 中有一个基于外部指标(pubsub 订阅)与水平 pod 自动缩放器相关联的部署。
出于某种原因,自动缩放器在我的 pod 上产生了涟漪(或颠簸)效果,使它们每分钟都被放大和缩小到相同的值(如下图所示)。
我发现kube-controller-manager组件有一个标志,它在缩减事件之间引入了冷却时间 ( --horizontal-pod-autoscaler-downscale-stabilization
)。
但是,我无法访问 GKE 中kube-controller-manager的配置。有什么解决方法吗?如果无法在 GKE 中进行配置,是否有其他方法可以减轻这种影响?
kubernetes - Kubernetes HPA(带有自定义指标)扩展策略
从 Kubernetes v1.18 开始,v2beta2 API 允许通过 Horizontal Pod Autoscalar (HPA) 行为字段配置缩放行为。我打算将带有自定义指标的 HPA 应用于 StatefulSet。
我正在查看的用例是使用自定义指标(例如我的应用程序上的用户会话数)进行横向扩展,但 HPA 根本不会缩减。K8s SIG-Autoscaling 增强功能也描述了此用例 - “HPA 的可配置缩放速度 >> 故事 4:照常放大,不要缩小”。
用户会话可以保持活跃几分钟到几小时。从 StatefulSet 的 1 个副本开始,随着用户会话数达到上限(使用 Prometheus 收集器公开,然后使用 HPA 自定义指标选项进行配置),应用程序 pod 将向外扩展。新的 Pod 将开始为新用户提供服务。
由于这是一个 StatefulSet 并且不能只是突然缩小,因此我正在寻求有关在新副本上的用户会话下降到 0 时缩小的方法的帮助。上面的链接说缩小可以通过一个单独的过程来控制。不知道该怎么做?寻找一些指针。
谢谢。
kubernetes - 定义了 HPA 的 kubernetes 集群是否需要 PDB?
我有一个 Kubernetes 集群。通过策略,我确保所有服务都定义了请求、限制和 HPA,以便我可以顺利进行自动缩放。我还定义了 ResourceQuota。在这种情况下,是否也需要定义 PDB?请指教。
kubernetes - 批量水平 pod 自动缩放
查看HPA(对此很新),我正在处理的用例是将相同的 HPA 规则应用于所有部署(在特定命名空间中)。
所以我理想情况下想要实现这样的东西:
我希望通过标签/选择器来处理这个问题,而所有部署对象都标有特定标签(例如enableHpa
),并以某种方式在内部使用选择器/macthLabelsHorizontalPodAutoscaler
将其应用于所有这些对象。但它看起来name
是必需的,并且需要针对特定的部署对象。
关于如何处理这种情况并避免hpa
为每一个deployment
按名称创建 s 的任何建议?
kubernetes - 从 pod 中访问副本集信息
我想从 pod 内部访问副本的数量以及给定 pod 的当前副本 id。例如,如果任何给定 pod 有 3 个副本,例如 foo_A、foo_B 和 foo_C,按特定顺序创建,是否可以在 pod 中提供副本集中的副本总数和 pod 索引?
我也明白,随着旧的 pod 被杀死而新的 pod 出现,副本集中的 pod 索引可以动态变化。
我知道这可以使用 Downward API 来实现,但是要访问哪些字段?有人可以帮忙吗?
amazon-web-services - Kubernetes HPA:将 HPA 日志作为事件发送到 aws cloudwatch
我正在 AWS 中开发 EKS 集群。我们有一个应用程序,它是内存密集型的。因此,我添加了一个 HPA,它的内存利用率为 60%。我们希望在 cloudwatch 中只有这些信息,因此我们可以相应地扩展我们的服务器。我尝试了容器洞察力,但这是一种矫枉过正。
有什么方法可以在 cloudwatch 中获取 Kubernetes HPA 日志作为事件?
高压钠灯:
版本:
EKS 集群在 1.15 上运行