Kubernetes cgroup 详解与实战教程

一、cgroup 基础概念

(一)什么是 cgroup

cgroup(Control Groups)是 Linux 内核提供的资源隔离与控制机制,用于限制、统计和监控进程组(如容器)的资源使用。它可以管理多种资源类型,包括:

  • CPU:分配核心数、时间片权重。
  • 内存:限制最大使用量、Swap 控制。
  • I/O:磁盘和网络带宽限制。
  • 进程数:防止 fork bomb。
  • 设备访问:限制特定设备使用。

(二)核心组件

组件 功能
Hierarchy 树状层级结构,每个层级绑定一个或多个子系统(如 CPU、Memory)
Subsystem 资源控制器(如 cpumemoryblkio),负责具体资源管理
Cgroup 层级中的节点,包含一组进程及其资源限制规则
Task 进程(线程),属于某个 cgroup,资源受其规则约束

(三)cgroup v1 vs v2

特性 cgroup v1 cgroup v2
层级结构 多层级,每个子系统独立 单一层级,统一管理所有子系统
资源分配模型 分散控制 统一权重分配(如 cpu.weight
内存控制 memory.limit_in_bytes memory.max
兼容性 广泛支持 需较新内核(≥4.15)

二、Kubernetes 中的 cgroup

(一)资源限制

Kubernetes 通过 cgroup 实现对容器资源的限制,主要通过以下两种方式:

  • limits:限制容器的资源使用量,如 CPU、内存等。
  • requests:为容器请求资源,Kubernetes 调度器会根据请求的资源量进行调度。

例如,以下配置为容器设置了内存和 CPU 的限制:

resources
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值