kubernetes自动伸缩

栏目: 编程工具 · 发布时间: 6年前

  • pod的横向自动伸缩
    • 由Horizontal控制器执行,创建HorizontalPodAutoscaler(HPA)资源来启用和配置Horizontal控制器。
    • Horizontal控制器周期性检查pod度量,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源的replicas字段。
    • 过程描述
      • 获取被伸缩资源对象管理的所有pod度量
        • pod与节点度量数据由cAdvisor获取,并由集群级组件Heapster聚合。HPA控制器向Heapster发起REST调用来获取所有pod度量数据。
      • 计算使度量数值到达所指定目标值所需的pod数量
      • 更新资源replicas字段
        • autoscaler控制器通过scale子资源来修改被伸缩资源的replicas字段。
        • 暴露Scale子资源
          • Deployment
          • ReplicaSet
          • ReplicationController
          • StatefulSet
      • kubernetes自动伸缩
    • yaml
      • apiVersion: autoscaling/v2beta1
        kind: HorizontalPodAutoscaler
        metadata:
          name: kubia
          namespace: service
          labels:
            app: xxx
            version: v0.0.1
        spec:
          scaleTargetRef:
            apiVersion: extensions/v1beta1
            kind: Deployment
            name: xxx
          minReplicas: 1
          maxReplicas: 5
          metrics:
          - type: Resource
            resource:
              name: cpu
              targetAverageUtilization: 30
          - type: Resource
            resource:
              name: memory
              targetAverageUtilization: 40
      • 观察 wathc -n 1 kubectl get hpa,deployment
  • HPA对象可以使用三种度量
    • metric类型
    • 使用情况会被监控的资源
    • 资源的目标使用量
  • resource度量类型【如上例子】
  • pods度量类型
    • 用来引用任何其他种类的与pod直接相关的度量
      • QPS,消息队列中的消息数量
      • 测试后不可用
  • Object度量类型
    • 基于非直接与pod关联的度量来进行伸缩
    • kubernetes自动伸缩
  • HPA不允许缩容到0个副本
  • 集群节点横向扩容
    • Cluster Autoscaler
      • 节点资源不足,自动部署新节点,节点长期使用率低,下节点。
      • 归还节点,Cluster Autoscaler通过监控所有节点上请求的cpu和内存实现这一点。被选中下线,标记为不可调度,随后疏散pod。然后执行节点摘除。
      • 这块没有实践过,只是做一下记录。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Tornado

Introduction to Tornado

Michael Dory、Adam Parrish、Brendan Berg / O'Reilly Media / 2012-3-28 / USD 23.99

Tornado is a scalable, non-blocking web server and web application framework written in Python. It is also light-weight to deploy, fun to write for, and incredibly powerful. Tornado was written with p......一起来看看 《Introduction to Tornado》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具