集群信息:
gcloud
在节点扩展期间,HPA无法获取CPU指标。
同时,
kubectl top pod
和kubectl top node
输出为:Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
有关更多详细信息,我将向您显示问题的发生流程:
逐步地。
Insufficient CPU
警告,因此GKE尝试将节点缩放逐步地。
kubectl top node
或kubectl top pod
没有得到回应。-这时找到了一个或多个
OutOfcpu
pods ,其中有多个 pods ContainerCreating
(来自Pending
状态)。 HPA开始成功获取CPU指标,并尝试根据以下指标进行放大/缩小
指标。
这会导致 pods 缩放停止,并在响应客户的请求时引发一些失败。这正常吗?
我认为,即使在节点扩展期间,HPA也应该在运行的Pod上获取CPU指标(或其他指标),以跟踪当前的最佳Pod大小。因此,当节点扩展完成后,HPA会立即创建必要的Pod(而不是增量创建)。
我可以使集群像这样工作吗?
最佳答案
也许您的节点用尽了一个内存或CPU资源,但有一些配置映射描述了如何根据集群大小扩展插件。您需要在 kube-system 命名空间中编辑metrics-server-config 配置映射:
kubectl edit cm/metrics-server-config -n kube-system
您应该添加
baseCPU
cpuPerNode
baseMemory
memoryPerNode
到NannyConfiguration here,您可以找到广泛的手册:
同样,heapster也遭受着相同的OOM问题:太多的pod无法处理分配的资源中的所有指标,请相应地修改heapster的配置映射:
kubectl edit cm/heapster-config -n kube-system
关于kubernetes - HPA无法在GKE节点自动缩放期间获取CPU指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623694/