pod计算资源管理
来源:互联网 发布:淘宝调研网站 编辑:程序博客网 时间:2024/05/20 17:26
k8s支持管理pod的cpu和memory两种计算资源,每种资源可以通过spec.container[].resources.requests和spec.container[].resources.limits两个参数管理
默认值
- requests未设置时,默认与limits相同。
- limits未设置时,默认值与集群配置相关。
requests
- requests用于schedule阶段,k8s scheduler在调度pod时会保证所有pod的requests总和小于node能提供的计算能力。
- requests.cpu会被转换成docker run的–cpu-shares参数。该参数与cgroup cpu.shares功能相同,具体为:
- 用来设置容器的cpu使用的相对权重。
- 该参数只有在CPU资源不足时生效,系统会根据容器requests.cpu的比例来分配cpu资源给该容器。例如两个container设置了相同的requests.cpu,当两者抢占CPU资源时,系统会给两个container分配相同比例的CPU资源。
- CPU资源充足时,requests.cpu不会限制单个container占用的最大值,即单个container可以独占CPU。
- requests.memory没有对应的docker run参数,只作为k8s调度依据。
- 可以使用requests来设置各容器需要的最小资源,使得k8s可以将更多的pod分配到一个node来实现超卖。
limits
- limits用于限制运行时容器占用的资源。
- limits.cpu会被转换成docker run的–cpu-quota参数。该参数与cgroup cpu.cfs_quota_us功能相同,具体为:
- 用来限制容器的最大CPU使用率。
- cpu.cfs_quota_us参数与cpu.cfs_period_us通常结合使用,后者用来设置时间周期,前者设置在时间周期内可以使用的CPU时间。两者的比例即为CPU的最大使用率。
- k8s将docker run的–cpu-period参数设置为100000,即100毫秒。该参数就对应着cgroup的cpu.cfs_period_us参数。
- limits.cpu的单位使用m,意义为millicore,即千分之一核。250m就表示25%的最大cpu使用率,k8s会将其转换为25毫秒的-cpu-quota参数。
- limits.memory会被转换成docker run的–memory参数。用来限制容器使用的最大内存。
- 当容器申请内存超过limits时会被终止,并根据重启策略进行重启。
- 容器的CPU使用率不允许长时间超过limits,当超过limits时不会被终止。
0 0
- pod计算资源管理
- 计算资源管理选型
- Kubernetes计算资源管理--requests和limits
- Kubernetes计算资源管理--requests和limits(续)
- POD
- POD
- POD
- pod
- POD
- pod
- 资源管理
- 资源管理
- 资源管理
- 资源管理
- 资源管理
- 资源管理
- 资源管理
- 资源管理
- MySQL 去除字段中的换行和回车符
- log4net使用说明
- 【Netty4.x】Netty TCP粘包/拆包问题的解决办法(二)
- IP地址和子网掩码的关系
- nginx随记1
- pod计算资源管理
- 画图板
- Java知识点集锦
- 1try
- Mobile Service_纪中1327_dp
- mapreduce(六):MapReduce原理
- Java 快速读取文本文件最后一行数据
- SQL_Oracle 表中ID字段的自动递增
- Highcharts基础教程(一):Highcharts 的主要组成