问题标签 [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.
kubernetes - 多个副本/Pod 如何扩展 Kubernetes?
据我了解,在很多人访问您的网站并调用 Kubernetes 集群提供的服务的情况下,使用多个副本以及自动扩展应该会有所帮助。
副本如何帮助扩展?
这些额外的 pod 不都只是在同一台计算机上运行,资源不变吗?
这意味着它们都受到恒定数量的 CPU 和内存的限制。
kubernetes - Pod 副本缩减在 Kubernetes Horizontal Pod Autoscaler 中是如何工作的?
我的理解是,在 Kubernetes 中,使用 Horizontal Pod Autoscaler 时,如果该targetCPUUtilizationPercentage
字段设置为 50%,并且所有 pod 副本的平均 CPU 利用率高于该值,HPA 将创建更多副本。一旦平均 CPU 在一段时间内下降到 50% 以下,它就会降低副本的数量。
这是我不确定的部分:
如果 pod 上的 CPU 利用率为 10%,而不是 0%,会怎样?HPA 是否仍会终止副本?
10% 的 CPU 并不多,但由于它不是 0%,因此某些任务当前正在该 pod 上运行。如果这是一个持续时间很长的任务(几秒钟)并且 HPA 决定终止 pod,则该任务将不会完成。
HPA 是否仅在其 CPU 利用率为 0% 时才终止 Pod,还是在看到该值低于时终止它们targetCPUUtilizationPercentage
?
HPA 如何决定删除哪些 pod?
谢谢!
kubernetes - 将清单文件应用于应用了水平自动缩放器的部署时,保持“幂等性”的最有效方法是什么?
假设您有一个 CI/CD 管道,作为该管道的一部分,您有一个部署清单文件,您可以在其中更改一些值并重新部署。
另一方面,您的部署也是水平自动缩放的,它通过修改部署清单文件以扩展到您设置的副本来工作。
然后有一天,您的水平自动缩放器已经旋转了 40 个 pod 以满足需求,然后您开始运行您的管道,该管道将部署清单设置为一个副本。应用此文件的那一刻,它将杀死所有 pod 副本,这意味着您的缩放器需要将它们恢复,这可能会影响数据和服务,这是不好的。
如何应用清单文件以使其不影响缩放的副本?我能想到的只是自动检查副本数量并更改部署清单以反映这一点,但这似乎是一个非常丑陋的解决方案。
我猜必须有更好的解决方案,我只是找不到它,或者我在寻找错误的地方......
kubernetes - Kubernetes 自动缩放不起作用 - 显示未知
关于这个主题有很多问题,我尝试了很多东西,但仍然没有用。
我是 Kubernetes 新手。我有一个 Kubernetes 集群,有 2 个节点(1 台 PC,另一台 PC 上的 1 个 VM)、1 个主节点、1 个节点。我启动了一个网站(Docker Image)并且 Pod 在节点(不是主节点)上运行。现在我想自动缩放 Pod,这就是我所做的:
- 设置
--request='cpu=50m'
到吊舱 - 创建 hpa:
kubectl autoscale deployment testwebsite --min=1 --max=4 --cpu-percent=25
- 用过的:
kubectl get hpa -w
现在存在输出显示为当前值的问题。我读了很多我必须将请求分配给 pod,就像我一样。通过以下方式检查:kubectl get pod testwebsite --out=yaml
我还创建了度量服务器版本 1.8+。确保它通过以下方式运行:kubectl get pods --all-namespaces
之后,我尝试调试 HPA 并通过以下方式对其进行了研究:
这向我展示了这一点:
10 多分钟后,它不会显示当前值,即使 CPU 使用率为 50-100%,它也不会按比例放大。
正如我所说,我是 Kubernetes 新手,我真的希望有人能帮助我。
此致,
Nico 又名 Myridor
编辑:在两个节点上使用 Ubuntu 18.04 LTS | Kubernetes 版本:1.14.0
kubernetes - 自定义指标 API 服务器不在 Go 中
我想实现自定义指标 API 服务器以与 HPA 一起使用。我们有专有的监控系统,在 C# 中有客户端库,但我在网上看到的所有实现都在 Go 中。
HPA 调用的 REST API(请求和响应)是否有定义?或者这只能在 Go 中(出于某种原因)?
我可以使用它在 Go 和我的 C# 服务器之间创建一个代理服务器,但我宁愿直接从 HPA 访问我的服务器
kubernetes - 在本地 Kubernetes 集群中使用 Kafka Exporter 的 HPA
我一直在尝试使用来自 Kafka-exporter 的 Metrics 来实现 Kubernetes HPA。Hpa 支持 Prometheus,因此我们尝试将指标写入 prometheus 实例。从那里开始,我们不清楚要采取的步骤。有没有详细解释的文章?
我关注了 https://medium.com/google-cloud/kubernetes-hpa-autoscaling-with-kafka-metrics-88a671497f07
在 GCP 中同样如此,我们使用了堆栈驱动程序,并且实现就像一个魅力。但是,我们在本地设置中遇到了困难,因为堆栈驱动程序需要被 Prometheus 替换
kubernetes - Kubernetes 自定义 Autoscaler Prometheus 适配器扩展不正确
kubernetes - 水平 pod Autoscaler 在 GKE 上过于激进地扩展自定义指标
我在 Google Kubernetes Engine 上有以下 Horizontal Pod Autoscaler 配置,可以通过自定义指标扩展部署 -RabbitMQ messages ready count
针对特定队列:foo-queue
.
它正确地获取度量值。
插入 2 条消息时,它会将部署扩展到最多 10 个副本。我希望它可以扩展到 2 个副本,因为 targetValue 是 1 并且有 2 条消息准备好了。
为什么它会如此积极地扩展?
HPA 配置:
kubernetes - HPA 缩减未正确发生
我已经为我的部署创建了 HPA,它可以很好地扩展到最大副本(在我的情况下为 6),当负载将其规模缩小到 5 但它应该达到我的原始副本状态(在我的情况下为 1)为负载变得正常。我在 30-40 分钟后验证了我的应用程序仍然有 5 个副本。它应该是 1 个副本。
kubernetes - Kubernetes HPA 自动扩展速度
我们为应用程序定义了 HPA,使其具有最小 1 个和最大 4 个副本,以 80% cpu 作为阈值。
我们想要的是,如果 pod cpu 超过 80%,应用程序需要一次扩展 1 个。相反,正在发生的事情是应用程序正在扩大到最大数量的副本。
我们如何定义一次缩放 1 个 pod 的缩放速度。同样,如果其中一个 pod 消耗超过 80% 的 cpu,则再扩展一个 pod,但不是最大副本数。
让我知道我们如何实现这一目标。