在GKE上,使用HPA (水平Pod自动分频器)和集群自动分频器,按预期放大吊舱和节点。然而,当需求减少时,似乎从随机节点中删除了豆荚。它导致利用率较低的节点。这不符合成本效益..。
编辑: HPA是基于targetCPUUtilizationPercentage单指标的。不使用VPA。
这是用于部署和HPA的简化yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo
spec:
replicas: 1
templates:
spec:
containers:
- name: c1
resources:
requests:
cpu: 200m
memory: 1.2G
- name: C2
resources:
requests:
cpu: 10m
volumeMounts:
- name: log-share
mountPath: /mnt/log-share
- name: C3
resources:
requests:
cpu: 10m
limits:
cpu: 100m
- name: log-share
mountPath: /mnt/log-share
volumes:
- name: log-share
emptyDir: {}
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: foo
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: foo
minReplicas: 1
maxReplicas: 60
targetCPUUtilizationPercentage: 80
...EDIT2:添加一个emptyDir卷作为有效示例。
我该如何改善这种情况?
有一些想法,但没有一个能完全解决问题.
发布于 2020-03-31 02:18:27
对不起,我没有提到使用emptyDir (问题中编辑的yaml )。
当我自己评论这个问题时,我在自动分词的常见问题中找到了哪些类型的荚可以阻止CA移除节点?。
带有本地仓库的吊舱。*
emptyDir卷是一个本地存储,因此我需要在部署的pod模板中添加以下注释,以标记pod是安全的,可以从利用率较低的节点中驱逐。
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo
spec:
selector:
matchLabels:
app: foo
template:
metadata:
labels:
app: foo
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
spec:
...指定注释后,GKE节点池的GCE实例组的大小比以前小。我觉得成功了!

谢谢大家在问题中的评论!
https://stackoverflow.com/questions/60846341
复制相似问题