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

在GKE节点自动缩放期间,HPA无法获取CPU度量

胡劲
2023-03-14
  • Kubernetes version: 1.12.8-gke.10
  • 正在使用的云:GKE
  • 安装方式:
  • 主机操作系统:(计算机类型)n1-标准-1
  • 国家知识产权局和版本:默认
  • CRI 和版本:默认

在节点缩放期间,HPA无法获取CPU度量。

同时,kubectl top-podkubectl-top-nodeoutput为:服务器错误(ServiceUnavailable):服务器当前无法处理请求(get-pods.metrics.k8s.io)

有关更多详细信息,我将向您展示我的问题发生的流程:

  1. 突然,许多请求到达GKE服务器。(使用测试工具)
  2. HPA检测到当前CPU使用率高于目标CPU使用率(50%),因此尝试增量扩展机架
  3. 创建pods时会出现CPU不足警告,因此GKE try node会递增
  4. 很快,HPA无法获取度量,而kubectl top nodekubectl-top-pod没有得到响应此时,找到一个或多个OutOfcpupods,并且多个pods处于
    容器创建状态(从
  5. 节点扩展完成并经过一段时间(大约几分钟)后,HPA开始成功获取CPU度量,并尝试根据度量进行放大/缩小
  6. 当节点缩小时,也会发生相同的情况

这导致pod缩放停止,并在响应客户端请求时出现一些故障。这正常吗?

我认为即使在节点扩展期间,HPA也应该获得正在运行的单元的CPU指标(或其他指标),以跟踪此时的最佳单元大小。因此,当节点扩展完成时,HPA会立即创建必要的单元(而不是逐渐增加)。

我可以让集群这样工作吗?

共有1个答案

艾凌龙
2023-03-14

也许您的节点耗尽了一个资源,无论是内存还是CPU,都有配置映射描述了如何根据集群大小扩展插件。您需要在 kube-system 命名空间中编辑指标-服务器-配置配置映射:

kubectl edit cm/metrics-server-config -n kube-system

你应该加上

baseCPU
cpuPerNode
baseMemory
memoryPerNode

到保姆配置,在这里你可以找到广泛的手册:

此外,heapster也面临同样的OOM问题:太多的pod无法处理分配资源中的所有度量,请相应地修改heapster的配置映射:

kubectl edit cm/heapster-config -n kube-system
 类似资料:
  • 我们在 GKE 上有一个启用了自动缩放 (HPA) 的Spring启动应用程序。在启动期间,HPA 会启动并开始缩放 Pod,即使没有流量也是如此。“kubectl 得到 hpa”的结果显示当前 CPU 平均利用率很高,而节点和 POD 的 CPU 利用率非常低。在纵向扩展期间,行为是相同的,并且最终会创建多个 Pod,从而导致 Node 扩展。 应用部署Yaml: 用于HPA的Yaml: 各种命

  • 我对在Ubuntu安装中测试kubernete自动缩放解决方案非常感兴趣。我已经在mini kube中使用过它,带有heapster,但由于它已经被弃用,我尝试使用指标服务器。现在在我的Ubuntu中,我安装了metrics-server,如下所示: 但当我检查HPA时,我总是看到以下内容: Kubectl获得hpa 似乎度量服务不用于计算使用量。 我去了Kubernetes的文档站点,真的不知道

  • 我试图通过Kubernetes Cloudwatch适配器,基于自定义的Cloudwatch度量来启用AWS EKS自动伸缩。我已经将自定义指标推送到AWS Cloudwatch,并验证了它们会出现在Cloudwatch控制台中,并且可以使用boto3客户机get_metric_data进行检索。这是我用来将自定义度量发布到CloudWatch的代码: 我有以下yaml文件,用于在Kubernet

  • 我试图创建一个具有可缩放/可折叠画布的应用程序。 特点: 用鼠标滚轮在支点处放大/缩小 用鼠标左键在画布上拖动节点 用鼠标右键拖动整个画布 很明显是枢轴点计算出了问题,但我想不出是什么,怎么修复。 非常感谢!

  • 我有一个“flash”动画,它通过CGAffineTransformMakeScale和UIViewAnimation使视图(带有点击识别器)变得越来越大和越来越小。问题是用户不能在仍在制作动画时点击按钮。 我该怎么解决这个问题?我是否必须异步运行flash方法(或者UIViewAnimation是否已经异步)。

  • 我已经配置了一个混合节点Kubernetes集群。两个工作节点是Unbuntu服务器18.04.4,两个工作节点是Windows Server 2019标准。我已经将几个Docker容器作为部署/吊舱部署到每一组工作节点(Ubuntu上的.NET核心应用程序和Windows上的遗留WCF应用程序)。一切似乎都如广告所说的那样有效。 我已经检查了在Windows节点上安装/配置kubelet的Pow