深入理解K8S(七)

容器和系统资源配置

CPU资源

CPU资源申请包含:cpu.request、cpu.limit
1CPU Core = 1000Millicore

调度Pod到Node上如何计算CPU:
如果:CPU Request(当前Pod)+ Pod CPU Request总和(当前Node)<= CPU可分配资源(当前Node),则Pod可以被调度到改Node上,否则该Node被过滤

kubectl describe node可显示当前节点的CPU和内存使用率
kubelet读取Pod的cpu.request和cpu.limit,为pod的CPU CGroup进行资源配置

CPU的CGroup的相关参数设置
可以通过:/sys/fs/cgroup/cpu/cpu.shares和/sys/fs/cgroup/cpu/cpu.cfs_quota_us来获取当前容器的CGroup的CPU信息

在这里插入图片描述

当节点资源紧张时:
在这里插入图片描述

Pod中有多个init容器:

  • kube-scheduler调度时,只计算cpu.request最多的init容器,不是计算init容器总和
  • 顺序执行完init容器后,业务容器进入Running状态;在计算该节点被占用的资源时,init容器的资源依然会被纳入计算,因为init容器在有些场景下可能会被再次执行
  • Pod中定义了nodeName直接指定了目标节点,就无需通过kube-scheduler调度了;kubelet在启动该Pod之前会计算该节点的空闲CPU,如果资源不被满足,则将Pod标记为OutOfCPU

CGroup层级树结构组织(CGroup驱动基于systemd):
在这里插入图片描述

在这里插入图片描述

内存资源

Pod spec通过定义requests.memory和limits.memory的值来为Pod申请内存,调度时会判断该节点的内存容量是否满足当前Pod的request.memory

调度完成后,kubelet会将容器申请的内存资源设置到该容器对应的memory CGroup中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值