问题标签 [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 - Kubernetes hpa cpu 利用率
我在 Istio 网关的 HPA 中发现了一些问题。
为什么10m等于10%?10m不是1%吗?
Kubernetes 版本是 1.18.5。
kubernetes - Kubernetes 节点 CPU 利用率
我正在尝试(学习)找出在 k8s节点上利用 CPU(和 RAM)的最佳方法。我的最终目标是确保集群中每个节点的 CPU 利用率高于 X%
到目前为止,我已经阅读了有关cluster-autoscaler和HPA的信息,但不确定它们是否会帮助我解决用例。
从我读到的:
cluster-autoscaler
resources.request
用于根据副本数和目标 ec2 实例上的可用 CPU之间的比较来自动缩放节点- 这不是基于流量/实际 CPU 使用率HPA
基于 CPU/实际 CPU 使用率,但针对单个 pod
我基本上想达到一个kubectl top nodes
显示所有节点正在使用> X%(比如说60%)的地步 - 如果我们达到X2%(比如说80%),理想情况下会触发自动缩放
关于如何处理这个用例的任何建议/指针?(或者我应该以某种方式使用这两种自动缩放机制的组合)
kubernetes - 谁能解释这个 Kubernetes HPA 行为?
所以这发生在 EKS K8s v1.15 上。您可以在描述输出中看到 api 版本。Millicpu 在 80 到 120 之间徘徊……这与 HPA 中的副本数完全不匹配……
这是 YAML:
这是 kubectl 描述:
自定义指标 API 被正确/频繁地填充并且运行良好。部署目标运行良好......我已经为这个 API 和副本计算浏览了整个 k8s 代码库,这没有任何意义......
kubernetes - 使用多种自动伸缩机制来自动伸缩 K8s 集群
在最近的一个实验中,我尝试使用两种机制自动扩展我的 K8s 集群:KEDA 和 HPA(见下文)。我想使用 HPA OOB 资源指标根据 pod 资源利用率(内存和 CPU)扩展我的集群,并使用 KEDA 根据自定义指标自动扩展。
即使我的部署成功并且集群运行良好且正常运行。当自动缩放启动时,集群变得混乱!Pod 不断地被配置然后取消配置,即使在我停止了针对集群的流量之后,这种状态仍然存在。我必须等待冷静期才能再次恢复理智。
我没有找到有关此主题的任何官方文档,因此在这里询问。
我的问题:
- 可以将 k8s 集群配置为使用多种机制自动扩展吗?
- 如果是这样,我做错了什么?
这是在 K8s 版本 1.15.11 和 KEDA 1.4.1 上
kubernetes - 使用不同命名空间中的指标和 pod 为 k8s 创建 HPA
我有三个命名空间:使用 prometheus-operator 的命名空间监控、使用RabbitMq队列管理器和 prometheus-adapter 的命名空间 rabbitmq、使用仅为 RabbitMq pod 创建输入的应用程序的命名空间工作者。我想使用 Horizontal Pod Autoscaler (HPA)使用来自 RabbitMq pod(在rabbitmq命名空间上)的队列“task_queue”中的指标来扩展 worker pod(在worker命名空间上)。所有这些指标都由 prometheus 操作员(在监控命名空间上)收集,并显示在 prometheus 前端:
在 prometheus-url:8080/graph 查询“rabbitmq_queue_messages”:
RabbitMQ、Prometheus-operator 和 Prometheus-adapter 是从 helm 图表安装的
RabbitMQ(values.yaml 有密码并在 9419 启用指标以进行抓取):
普罗米修斯适配器:
普罗米修斯操作员:
普罗米修斯值.yaml:
自定义指标没问题:
这是我的 hpa.yaml:
但是 hpa 不能像 kubectl describe 显示的那样工作:
我相信 HPA 正试图在工作命名空间上找到 RabbitMq 服务,
但该服务位于rabbitmq命名空间上。我尝试使用兔子的服务 FQDN (rabbitmq-server.rabbitmq.svc.cluster.local) 和服务名称 (rabbitmq-server)。我错过了什么?有没有办法让它工作?这里的重点是我有另一个项目有 10 多个命名空间,并且它们都使用相同的 rabbit 服务器(在rabbitmq命名空间上),所以让它们一起在同一个命名空间中将是一场噩梦。谢谢。
编辑 1:我的自定义指标config.yaml
适配器 helm 使用此文件安装:
如果 HPA 是在 rabbitmq 命名空间中创建的,这是 HPA 描述:
kubernetes - external.metrics.k8s.io 在 EKS 集群中不可用
Kubernetes 版本:亚马逊 EKS 上的 1.13
我正在尝试按照本指南https://nuvalence.io/building-a-k8s-autoscaler-with-custom-metrics/使用 prometheus-adapter 在我们的 Kubernetes 集群中启用基于 rabbitmq 数据的自动缩放。
但是,运行
kubectl get --raw /apis/external.metrics.k8s.io/v1beta1 | jq .
返回Error from server (NotFound): the server could not find the requested resource
告诉我由于某种原因不支持/启用外部指标。
自定义的虽然可以,所以kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq .
返回有效数据。
问题是rabbitmq 绝对应该是一个外部指标,我花了几个小时试图让它像自定义一样工作,但没有任何成功。
不知道如何处理外部指标或关于从哪里开始搜索的指示?这个 api 端点应该默认存在还是有一个启用它的扩展?
kubernetes - Kubernetes 扩展不够快(对于 K8 1.17 或更低版本)
Kubernetes 1.18 具有非常好的能力,可以通过行为和 scaleUp 集更改自动缩放。对于 1.17,有一种方法可以控制缩小。有没有一种并行的方式可以更快地扩大规模?我们期待非常可变的负载,并且我们的集群扩展速度不够快。
我不确定要包括哪些其他信息。我一直在搜索文档,但找不到任何指向正确方向的东西。
kubernetes - Kubernetes AWS Cloudwatch 适配器未获取 EKS HPA 自动缩放的自定义指标值
我正在尝试通过 Kubernetes Cloudwatch 适配器启用基于自定义 Cloudwatch 指标的 AWS EKS 自动缩放。我已将自定义指标推送到 AWS Cloudwatch,并验证它们出现在 Cloudwatch 控制台中,并且可以使用 boto3 客户端 get_metric_data 进行检索。这是我用来将自定义指标发布到 Cloudwatch 的代码:
我有以下 yaml 文件用于在 kubernetes 中建立外部指标和 hpa 自动缩放器:
extMetricCustom.yaml:
hpaCustomMetric.yaml
当我评估 Kubernetes Cloudwatch 适配器是否正确获取我的自定义指标 (kubectl get hpa) 时,它始终显示指标为 0:
如何根据我的 Cloudwatch 自定义指标正确自动缩放?
kubernetes - HPA(水平 Pod 自动缩放器)`currentCPUUtilizationPercentage` 的 Kubernetes Prometheus 指标?
在使用 CoreOS Prometheus Operator 抓取所有标准集群指标的 Kubernetes 集群上,什么 Prometheus 指标可以显示currentCPUUtilizationPercentage
简单 HPA(水平 pod 自动缩放器)的价值?
如果我设置一个简单的 hpa,例如:
然后,如果我这样做,kubectl get hpa php-apache -o yaml
我会看到类似的内容:
我想currentCPUUtilizationPercentage
在普罗米修斯中看到这一点。我已经做了一堆 Prometheus 查询来寻找这个。
我搜索了所有标记的指标{hpa="php-apache"}
,我看到了许多 hpa 指标,但没有看到我正在寻找的指标。我可以看到kube_hpa_spec_target_metric
设置为 30,我可以看到当前状态指标,kube_hpa_status_condition
但不是我想要查看的当前 cpu 指标值。
我搜索了所有标记的指标{metric_name="cpu"}
,只看到kube_hpa_spec_target_metric
我搜索了所有标记的容器和 pod 相关指标{container="my-container-name"}
,{pod=~"my-pod-prefix.*"}
并且我看到了几个与 cpu 相关的指标,例如container_cpu_usage_seconds_total
abnd container_spec_cpu_quota
,但没有类似的指标,或者似乎没有任何指标可以用于计算currentCPUUtilizationPercentage
我正在寻找的值?
仅供参考,这是在 Kubernetes 1.17.x 上并使用最新版本的 CoreOS Prometheus Operator。
kubernetes - 是否有已知的方法来确定自动缩放阈值?
是否有已知的方法/关键字/主题来解决如何确定自动缩放阈值?
下面以 K8s HPA 为例,我只知道我可以安装一些监控工具,然后通过肉眼查看图表上显示的内存使用情况,以确定合适的阈值 100Mi。但是为什么不设置99Mi,为什么不设置101Mi呢?我觉得这个方法太手动了。
由于我没有精通计算机科学,所以我想问
是否有解决此类问题的已知方法?
或者什么样的课程可以解决这个问题?
或者从学术文章中搜索的关键字是什么?