前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes---CPU/内存单位解析---待整理

Kubernetes---CPU/内存单位解析---待整理

作者头像
院长技术
发布2021-01-18 11:33:21
11.1K0
发布2021-01-18 11:33:21
举报
文章被收录于专栏:院长运维开发院长运维开发

内存:MI

cpu:核

3.k8s cpu、内存单位转正常单位 CPU: k8s的1000 = cpu的一个核

如果一台服务器CPU是4核,那么K8s单位表示就是4*1000

内存: K8s的8320MI = 8320 1024 1024 字节

代码语言:javascript
复制
               1MI = 1024*1024 字节 

同理 1024MI/1024 = 1G

资源限制内部机制使用的是cgroup类型 目录: /sys/fs/cgroup/systemd

k8s采用request和limit两种限制类型来对资源进行分配

request(资源需求):即运行pod的节点必须满足运行pod的最基本需求才能运行pod。 limit(资源限制):即运行pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。 资源类型:

CPU的单位是核心数,内存的单位是字节。 一个容器申请0.5各CPU,就相当于申请1个CPU的一半,可以加个后缀m表示千分之一的概念。比如说100m的CPU,100豪的CPU和0.1个CPU都是一样的。 内存单位:

K,M,G,T,P,E #通常是以1000为换算标准的。 Ki,Mi,Gi,Ti,Pi,Ei #通常是以1024为换算标准的。

requests

代码语言:javascript
复制
  requests用于schedule阶段,在调度pod保证所有pod的requests总和小于node能提供的计算能力
  requests.cpu被转成docker的--cpu-shares参数,与cgroup cpu.shares功能相同
  设置容器的cpu的相对权重
  该参数在CPU资源不足时生效,根据容器requests.cpu的比例来分配cpu资源
  CPU资源充足时,requests.cpu不会限制container占用的最大值,container可以独占CPU
  requests.memory没有对应的docker参数,作为k8s调度依据
  使用requests来设置各容器需要的最小资源

limits

代码语言:javascript
复制
  limits限制运行时容器占用的资源
  limits.cpu会被转换成docker的–cpu-quota参数。与cgroup cpu.cfs_quota_us功能相同
  限制容器的最大CPU使用率
  cpu.cfs_quota_us参数与cpu.cfs_period_us结合使用,后者设置时间周期
  k8s将docker的–cpu-period参数设置100毫秒。对应着cgroup的cpu.cfs_period_us
  limits.cpu的单位使用m,千分之一核
  limits.memory会被转换成docker的–memory参数。用来限制容器使用的最大内存
  当容器申请内存超过limits时会被终止
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档