问题标签 [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 - 基于基于日志的指标自动扩展 Kubernetes
我在 GKE 上使用自动驾驶仪。我创建了一些基于日志的指标,我想用它们来扩展 pod。
首先 - 我不确定这是否是个好主意 - 指标只是数据库中要处理的记录数......我感觉使用日志来扩展应用程序可能会带来一些奇怪的无限循环或其他东西......
无论如何 - 我已经尝试logging.googleapis.com|user|celery-person-count
作为外部指标输入并得到HPA cannot read metric value
. 已安装 Stackdriver 适配器,但也不太清楚如何使用它。
kubernetes - 将 HPA 绑定到定制的 apiservice
是否可以将 HPA 配置为与自定义指标服务器的不同 api-service 一起使用,而不是v1beta1.custom.metrics.k8s.io
?
就我而言,v1beta1.custom.metrics.k8s.io
已经绑定到其他一些指标服务器,我不想碰它。
我想创建自己的指标服务器,将其绑定到我自己的 api-service 并在我的命名空间中将此 api-service 与 HPA 一起使用。
kubernetes - GKE autopilot 会自动缩放 Pod 和节点吗?
当我更改replicas: x
.yaml 文件中的 .yaml 文件时,我可以看到 GKE 自动驾驶仪根据值向上/向下引导 pod,但如果我的部署负载过大会发生什么情况。然后它会自动缩放 pod 和节点的数量来处理流量,然后在请求负载再次减少时减少回副本中指定的值?
我基本上是在问自动驾驶仪水平自动缩放如何工作?以及如何获得至少 2 个可以在自动驾驶仪中水平自动缩放的 pod 副本?
kubernetes - 在哪里可以找到水平 pod 自动扩缩器的日志?
我的一些 HPA 出现了奇怪的问题。由于未知原因,他们报告需要扩展到最大副本数 - 即使他们现有的目标是 2%/80% ......他们已经运行了 3 个多月,其中 2 个服务一个多月以来,HPA 都变得糟糕透顶了。同一集群和命名空间中的其他 HPA 运行良好。
我试图找出如何查看 HPA 正在计算的内容。他们有写在某处的日志吗?我在哪里可以找到它们?
谢谢
- 更新 -
这再次发生,几乎相同的场景。尽管实际 CPU 消耗大大低于阈值,但我们的一些 HPA 已再次扩大到最大。我们还能够看到历史利用率也没有超过目标百分比,所以我真的不知道为什么会这样。
我真正想知道的是哪些 CPU 值被发送到 HPA 计算器,但我不知道在哪里可以找到这些值。有人知道我在哪里可以找到那个吗?
谢谢
-- 更新 2 -- 我找到了源代码,它开始看起来实际上并没有将任何这些信息打印为日志数据甚至事件。所以现在真的很茫然,无法进一步解决这个问题。
kubernetes - Kubernetes“无法获取指标”
我正在尝试通过分别运行这两个命令来自动扩展部署和状态集:
可悲的是,在 minikube 仪表板上,这两个服务下都出现了这个错误:
在线搜索我读到这可能是一个 dns 错误,所以我检查了但 CoreDNS 似乎运行良好。两种工作负载都没有什么特别之处,这是“前端”部署:
有没有人有任何建议?
kubernetes - Kubernetes:每个副本一个节点
我在 Kubernetes 集群(在 OpenFaaS 上运行)上部署了一个 CPU 密集型无服务器功能。我想要实现的是,每当调用我的函数时,我的集群中都会启动一个新节点来执行该进程,因为在给定时间可能会执行多个进程。到目前为止,我已经创建了一个 HPA,设置为 CPU 利用率的 70%:
我还在部署中添加了一条podAntiAffinity
规则,确保在给定节点上只部署一个副本:
部署还具有resource
配置设置:
到目前为止,我能够启动新节点,并在每个节点上部署我的功能副本。期望的结果是每个节点执行彼此隔离的无服务器功能。例如:
相反,我看到的是Node 1
使用 parameter 执行函数A
,然后开始使用 parameter 执行函数B
。CPU 利用率超过 70% 后,Node 2
启动并开始多次执行我的函数,使用参数A
和B
.
我想要的是仅使用参数执行我的函数,仅Node 1
使用参数执行我的函数,等等。A
Node 2
B
有没有办法实现上述目标?
apache-kafka - Auto Scaling 在运行 Kafka Consumer 的过程中进行扩展
当自动缩放过程缩小并选择要终止的节点/pod 时,它会为已经进入目标节点/pod 的 HTTP 请求提供一些宽限期,以便 HTTP 请求有时间完成处理和响应。同样在此期间,负载均衡器停止向即将终止的节点/pod 发送新请求。
我的问题是,如果在其中一个进程/容器中有一个 Kafka 消费者不知道它的包含进程即将被终止,并且它一直在消耗来自 Kafka 和进程的数据,该怎么办。当消费者在处理消费数据的过程中,进程有可能被终止。
那么,是否有任何解决方案让 Kafka 消费者停止消费并给它一些宽限期来处理已经消费的记录?类似于 HTTP 请求的宽限期如何?
可能会有一些想法,例如,我们可以在成功处理后手动提交 kafka 偏移量。但并非所有场景都适合手动提交。可能我们必须在记录被消费后立即手动提交,然后处理,或者只是让消费者自动提交。
kubernetes - 绝对值的 GKE 自动缩放指标
我正在尝试根据绝对值在我的 GKE 部署上设置水平 pod 自动缩放指标,但仍然没有得到绝对值和百分比之间的差异:
假设我为每个 Pod 请求500mCPU,起始数量为 3 个 pod。
如果我想用 绝对值替换“50% 的 CPU 使用率”的自动缩放指标:它会是“250 mCPU”吗?
它是基于每个 pod 的平均用户还是所有 pod 的总使用量?
先感谢您
kubernetes - HorizontalPodAutoscaler 和 GKE Cluster Autoscaler 的区别
我可以通过Cluster Autoscaler自动配置节点以响应增加的负载,我可以创建一个集群:
或者通过 Horizontal Pod Autoscaling,我可以将其应用于现有集群:
Cluster Autoscaler 和 Horizontal Pod Autoscaling 有什么区别?它们似乎是实现同一目标的替代方法(让基础设施动态调整以响应更大的资源需求)。例如,两者都允许指定最小和最大节点数。然而,每个文档都没有提及另一个。