- 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
- 获取被伸缩资源对象管理的所有pod度量
- 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,消息队列中的消息数量
- 测试后不可用
- 用来引用任何其他种类的与pod直接相关的度量
- Object度量类型
- 基于非直接与pod关联的度量来进行伸缩
- HPA不允许缩容到0个副本
- 集群节点横向扩容
- Cluster Autoscaler
- 节点资源不足,自动部署新节点,节点长期使用率低,下节点。
- 归还节点,Cluster Autoscaler通过监控所有节点上请求的cpu和内存实现这一点。被选中下线,标记为不可调度,随后疏散pod。然后执行节点摘除。
- 这块没有实践过,只是做一下记录。
- Cluster Autoscaler
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- K8S水平伸缩器 - 自动伸缩微服务实例数量
- 微服务实例自动弹性伸缩实践
- 在Kubernetes上部署和伸缩Jenkins
- Jenkins + DockerSwarm 实现弹性伸缩持续集成
- 基于Prometheus,Alermanager实现Kubernetes自动伸缩
- (译)Istio 组件的性能与伸缩性
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。