首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用HPA和集群自动Cluster降低GKE节点的资源利用率

如何利用HPA和集群自动Cluster降低GKE节点的资源利用率
EN

Stack Overflow用户
提问于 2020-03-25 09:48:51
回答 1查看 320关注 0票数 1

在GKE上,使用HPA (水平Pod自动分频器)和集群自动分频器,按预期放大吊舱和节点。然而,当需求减少时,似乎从随机节点中删除了豆荚。它导致利用率较低的节点。这不符合成本效益..。

编辑: HPA是基于targetCPUUtilizationPercentage单指标的。不使用VPA。

这是用于部署和HPA的简化yaml文件:

代码语言:javascript
复制
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卷作为有效示例。

我该如何改善这种情况?

有一些想法,但没有一个能完全解决问题.

  • 配置节点池、机器类型和pod资源请求,以便只适合一个节点。如果HPA从节点中删除了一个pod,则该节点将在一段时间后被删除,但它不适用于各种资源请求的部署。
  • 如果可能的话使用抢占节点..。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-31 02:18:27

对不起,我没有提到使用emptyDir (问题中编辑的yaml )。

当我自己评论这个问题时,我在自动分词的常见问题中找到了哪些类型的荚可以阻止CA移除节点?

带有本地仓库的吊舱。*

emptyDir卷是一个本地存储,因此我需要在部署的pod模板中添加以下注释,以标记pod是安全的,可以从利用率较低的节点中驱逐。

代码语言:javascript
复制
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实例组的大小比以前小。我觉得成功了!

谢谢大家在问题中的评论!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60846341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档