云原生k8s【第五课】:资源配额与限制

云原生k8s【第五课】:资源配额与限制 资源配额与限制目的给容器定好 CPU、内存的上下限防止某个程序乱占机器资源把整台服务器拖崩多团队共用集群时还能划分资源地盘。一、Requests申请值 Limits上限值单个 Pod 资源管控1. Requests资源申请保底需求调度阶段生效Pod启动前跟集群申请的最低资源门槛调度器找节点时只会挑剩余资源 ≥ 这个申请数的机器节点资源不够满足申请Pod 一直 Pending启动不了作用保证 Pod 启动后一定能分到这么多资源不会抢不到资源卡顿。单位说明CPU100m 0.1 核1000m 1 整颗 CPU 核心内存Mi、M 代表兆内存2. Limits资源上限运行阶段生效Pod运行时最多能用的资源上限不许超额CPU 超了不会杀死容器只会被限速降频跑的变慢内存超了系统直接 OOM 杀掉 Pod防止它吃光整机内存连累别的服务二、ResourceQuota命名空间总资源大盘配额给整个命名空间划定资源总上限一个空间里所有 Pod 加起来不能超额度开启配额后硬性规则空间里新建任何 Pod必须填写 requests 和 limits不然直接报错 403 拒绝创建管控内容总 CPU 申请、总内存申请、总 CPU 上限、总内存上限、最多能跑多少个 Pod 等例子test 命名空间规定最多 1 个 Pod、全部 CPU 申请总和≤1 核、内存总和≤1Gi如果你创建一个申请 15 核 CPU 的 Pod远超总额度直接创建失败。三、LimitRange默认资源模板LimitRange是给某个命名空间namespace统一定下规矩这个空间里所有新建的 Pod / 容器CPU、内存的「最小申请值、最大上限值、默认值」全都统一规定死自动填充默认值Pod yaml 没写 requests/limits系统自动给它填上预设好的默认 CPU、内存限定单个 Pod 最大最小值规定一个容器最少能用多少资源、最多不能超过多少避免有人乱填超大资源占坑约束 Request 和 Limit 比例比如限制上限最多只能是申请值的 2 倍差距不能过大。搭配逻辑生产标准组合ResourceQuota总盘子封顶 LimitRange默认值 单容器区间不用每次手写资源集群总量还不会被撑爆。