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

go - 如何使用 go-lang 提取 Kubernetes 中的活动 HPA

我正在使用 kube 配置文件使用 go-lang 获取 pod CPU 和 MEM 数据。我坚持获取 HPA 详细信息,即我正在尝试编写相当于“kubectl get hpa”的内容,因此我可以知道我是否已将 hpa 应用于已知服务。

对此的任何帮助都将受到高度赞赏。

到目前为止,我已经尝试过以下方法。

但这不起作用。

0 投票
0 回答
738 浏览

kubernetes - Kubernetes HPA:无法获取内存利用率:无法获取资源内存的指标:资源指标 API 没有返回指标

我将度量服务器部署到我的 EKS

但是当我跑的时候开始出现这个错误kubectl describe hpa hpa-frontend

我已经在使用这个设置:

0 投票
1 回答
51 浏览

kubernetes - Kubernetes 备用/冷副本/Pod

我正在寻找如何在我的 Kubernetes 配置中拥有备用/冷副本/pod。我假设它会出现在我的 Kuberentes 部署或 HPA 配置中。知道我将如何做到这一点,因此我的应用程序的 2 个备用/冷实例始终准备就绪,但只有在 HPA 请求另一个实例时才被放入活动 pod?我的目标是当 HPA 说它需要另一个实例时,新 pod 的启动时间基本上为零。

0 投票
0 回答
37 浏览

keda - KEDA - redis listLength 如何缩放 pod(详细)

redis 触发器中 listLength 的文档非常混乱。从阅读和实验来看,listLength 似乎是应该创建新 pod 的阈值。IE。如果 listLength 为 16,则当给定列表中有 16 个或更多项目时,将启动一个 pod。

我将如何保证将为列表中的每个项目启动一个 pod(达到 maxReplicaCount 阈值)?我遇到的问题是,一些 pod 被旋转起来(即使列表中有更多元素,它也可能低于 maxReplicaCount),随着时间的推移,pod 死亡,我最终得到了几个 pod 长时间挣扎列表,这使得它无法在生产中使用

我真正想要的是,如果我的列表长度为 20,我将旋转 20 个 pod,如果我的 maxReplicaCount 为 20,则所有其他列表元素将被现有的 pod 消耗,但存在的 20 个不会下降,直到列表长度低于一个 PER pod。

0 投票
0 回答
59 浏览

kubernetes - GKE 在超过 5 个时杀死 pod

我在 GKE 上部署了一个 k8s 集群,有一个“主”节点池包含 1 个节点,用于所有部署,一个节点池包含 1 个节点用于kube-ip

在主节点池上,我想部署我的一个应用程序(flask API)的 10 个副本。但是,当数量超过 5 时,GKE 会不断杀死我的 pod 以使 pod 数量恢复到 5。

我试图修改我的不同 yaml 文件(deployment.yamlhorizontalPodScheduler.yaml)中的值

水平PodScheduler.yaml

部署.yaml

即使我设置了这些值,GKE 总是将它们覆盖为 5 个副本:

这是我的主节点的资源摘要,您可以看到有很多资源可以部署副本(这是一个非常简单的 API)

我也尝试使用 GKE UI 上的“缩放”按钮,但结果是一样的......

资源

0 投票
0 回答
52 浏览

kubernetes - GKE 自动缩放器在无限循环中覆盖我的 Horizo​​ntalPodAutoscaler

我在 GCP 上拥有一个 GKE 集群,我有 1 个节点池和 1 个节点(4 个 CPU/16Gb RAM)。

今天我尝试将我的一个应用程序扩展到 10 个副本(我们希望在其上运行大量并发请求)。

我首先编辑了我的horizontalPodAutoscaler.yamlmaxReplicas从 5 更改为 50 和minReplicas从 1 更改为 10。

然后我从3到10进行了编辑deployment.yaml和修改。spec.replicas

现在我的部署陷入了一个循环:它尝试部署 10 个 Pod,一旦 10 个准备就绪,它就会杀死其中的 5 个以返回到 5 个,无限循环。

这是循环期间自动缩放器状态的屏幕截图,就像它尝试应用 1 个配置并且立即配置被另一个配置覆盖。

在此处输入图像描述

在此处输入图像描述

这是我正在使用的配置文件:

水平PodScheduler.yaml

部署.yaml

0 投票
0 回答
107 浏览

kubernetes - 如何配置 Horizo​​ntal Pod Autoscaler 以使 Pod 适合节点?

我有一组需要处理和非同质计算环境的工件,例如 - 一些输入很大,需要很长时间和大量内存,其他输入很小,所以需要很短的时间和很少的内存,而节点确实如此没有单一数量的核心和内存。

我想要一组关于添加 pod 的简单贪心规则:

如果有剩余核心,则在输入中添加具有约束的 pod,以选择适合剩余内存的最大输入。

到目前为止,我发现很难使用 Horizo​​ntal Pod Autoscaler 平均和目标 CPU 使用率来表达这一点,尤其是由于平均利用率的语义是指 pod 内的进程。在这一点上,我认为需要使用自定义指标或某种方式将参数的选择与 kubernetes 集成。

但我不知道最好的方法是什么。如果我要对此进行编程以与 kubernetes 集成,我会使用什么 API?如果我可以向 kubernetes 注册一个回调,接收度量信息,其中可以向 kubernetes 提供不同的信号以通过简单地返回一个类型或信号或调用另一个 API 来添加或删除它们,那就太好了。

0 投票
1 回答
61 浏览

amazon-web-services - 具有外部指标的 Kubernetes hpa。我的外部指标没有返回正确的值

我想根据所有 AWS SQS 队列中未完成消息的总数使用 HPA 扩展我的工作 pod。由于没有这样的指标可用,我使用 lambda 函数创建了一个自定义指标。我正在使用 k8s-cloudwatch-adapter。 https://aws.amazon.com/blogs/compute/scaling-kubernetes-deployments-with-amazon-cloudwatch-metrics/

我已经测试了我的 lambda 函数。它返回正确的值,并且指标也被推送到 cloudwatch。我的 cloudwatch 适配器也能够注册外部指标。我使用以下命令对其进行了验证:

只是由于某种原因,它返回空值而不是返回正确的值。cloudwatch 适配器权限没有问题。HPA 不会抛出任何错误。只是它在我的情况下应该返回“15”时显示为“0”。

我认为这是因为我在外部指标清单中提供了一些错误的查询。这就是我所有文件的样子。(不包括 cloudwatch 适配器清单文件)

拉姆达:

外部指标清单:

高压钠灯:

0 投票
1 回答
66 浏览

go - 突然关闭时,go 通道中未处理的消息会发生什么?

我在 kubernetes 中部署了一个 go 应用程序。我的应用程序有一个 go 例程,它不断侦听来自 kafka 主题的消息,并将新消息推送到 go 通道以进行进一步处理并提交 kafka 消息。如果我使用 hpa 减少副本的数量/如果副本由于恐慌而下降,那么仍然在 go 通道中未处理的消息会发生什么?