06-容器的资源限制

容器的资源限制

服务质量

requests( 资源需求,最低保障 ):

limits( 资源限制,硬限制 ):

CPU: 指CPU线程,一个线程 1000m

内存

QoS Class:自动生成

  • Guranteed(优先级高)

    同时设置CPU与内存的request和limits

    ​ CPU.limits=CPU.request

    memory.limits=CPU.request

  • Burstable(优先级中)

    至少一个容器设置了CPU或memory的request

  • BestEffort(优先级低)

    没有任何一个容器被设置了request和limits

当服务器的资源不够用的时候

  • 会优先杀掉 优先级低 的容器。
  • 按照需求量,占用 比率高 的被杀掉。

HeapSter+InfluxDB+Grafana(适用于1.10之前的版本,已经不建议使用)

资源使用量数据采集工具

  • cAdvisor:集成与kunelet,收集node上 pod级别的用量
  • HeapSter: 收集汇总数据
  • InfluxDB:持久化数据
  • Grafana:展示数据

https://github.com/huruizhi/kubeasz/blob/master/docs/guide/heapster.md

资源指标API 与 自定义指标API

  • 资源指标
  • 自定义指标

新一代架构

  • 核心指标流水线:kubelet metric-server 与 API Server 提供的api;监控CPU累计使用率,内存实时使用率,Pod的资源占用与node的磁盘占用率。

  • 监控流水线:从系统手机各种指标数据提供给终端用户、存储系统与HPA,非核心指标不能被k8s所解析。

metric-server

资源指标

kube-aggregator 作为代理将核心指标的访问指向apiserver,将用户自定义的指标指向metric-server

aggregator

prometheus + k8s-prometheus-adapter

自定义指标

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus

prometheus架构图

注意:推荐使用helm安装部署prometues

HPA 应用自动伸缩

kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS
[--cpu-percent=CPU] [options]

kubectl explain hpa.spec.scaleTargetRef

猜你喜欢

转载自www.cnblogs.com/pythonPath/p/11267415.html