当前位置: 首页 > 知识库问答 >
问题:

基于CPU的水平吊舱自动缩放在kubernetes集群中不起作用

公冶高义
2023-03-14

我正在尝试测试部署在AWS中的Kubernetes集群的水平吊舱自动缩放功能(使用EKS)。

我已将资源设置为“CPU”,将目标类型设置为“利用率”,并在 YAML 文件中将“平均利用率”设置为 15。

因此,从技术上讲,当CPU利用率达到15%的设置百分比时,Kubernetes集群应该自动水平扩展(自动添加pods)。这是YAML文件的重要部分:

    maxReplicas: 11
    metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 15

我向Kubernetes集群注入了大量HTTP流量,但所有pods都稳定在35%-36%的CPU,有5个或6个pods,并且它们不会创建额外的pods来将平均CPU利用率降低到15%(我在YAML文件中将其设置为“averageUtilization”)。

无论我多次调试和运行测试,都是同样的情况。我在这里做错了什么,我错过了别的东西吗?

共有1个答案

司徒锐进
2023-03-14

您是否检查了< code>metrics-server是否已启用?它是启用< code>hpa所必需的:https://kubernetes . io/docs/tasks/run-application/horizontal-pod-auto scale/# support-for-metrics-API。

这是metrics-serverdoc:https://github.com/kubernetes-sigs/metrics-server.为了快速测试它并检查它是否解决了您的问题,您可以禁用TLS:--kubelet-insecure-tls。在生产中,您需要再次启用TLS。

要检查< code>metrics-server是否已启用,可以运行< code>kubectl top命令。它需要几秒钟才能启动,因为它需要先收集一些指标。

 类似资料:
  • 正如标题所说,我需要自动部署运行在Payara-FullPod上的应用程序。 目前,我已经手动部署了。通过在Pod内复制war文件(通过命令),然后通过

  • 在使用CoreOS Prometheus运算符刮除所有标准集群度量的Kubernetes集群上,对于简单的HPA(水平pod自动缩放器),什么Prometheus度量会向我显示值? 如果我设置一个简单的hpa,比如: 然后,如果我执行,我会看到如下内容: 我想在普罗米修斯中看到。我做了一堆普罗米修斯查询来找这个。

  • 我在按照Kubernetes文档中提到的指示一步一步地部署自定义调度器 下面是[链接](https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/) …………。 ........

  • 我的要求是在自定义指标上扩展POD,如队列中的挂起消息,PODS必须增加以处理作业。在kubernetes,Scale up在普罗米修斯适配器和普罗米修斯操作员中工作得很好。 我在pods中有长时间运行的进程,但HPA检查自定义度量并试图缩小规模,因为这个进程杀死了操作的中间并丢失了消息。我如何控制HPA只杀死没有进程运行的自由豆荚。 序列查询:‘{namespace=“default”,serv

  • 我对AWS上POD之间的跨集群通信有疑问。 我正在使用kubernetes在AWS上部署集群。两个星团位于同一区域和AZ。两个集群都部署在各自的VPC中,子网不重叠。我已经成功创建了VPC对等,以在两个VPC之间建立通信。VPC的仆从(实例)可以通过私有IP相互ping。 问题是,来自一个集群(VPC)的Kubernetes吊舱不能通过其内部IP ping另一个集群中的吊舱。我看到流量离开吊舱和仆

  • 我正在尝试HPA:https://kubernetes.io/docs/tasks/run-application/hosteral-pod-autoscale/ HPA: 并创建了新的吊舱: 正如您所看到的,我使用的是,它不支持访问模式。 我发现了一些东西:没有什么可以确保新扩展的pod将与第一个pod运行在同一个节点上。因此,如果卷插件不支持,并且缩放的pod在另一个节点上运行,则它将无法挂载