如何配置Kubernetes部署资源限制

夜婷同学_8608

夜婷同学_8608

2026-09-04

925人浏览

原创

pod 不写 resources 就创建失败,是因为启用 resourcequota 的命名空间强制要求所有 pod 显式声明 requests 和 limits,否则准入控制器(resourcequota.admission.k8s.io)会拒绝请求;requests 是调度依据,limits 是运行上限,二者须满足 min ≤ requests ≤ limits ≤ max,且单位需规范(如 cpu 用 m、memory 用 mi/gi)。

如何配置kubernetes部署资源限制

必须在 Pod 的 spec.containers[].resources 中显式配置 requests 和 limits,否则在启用了 ResourceQuota 的命名空间中,Pod 创建会直接被拒绝(HTTP 403)。这不是可选项,而是强制约束。

为什么 Pod 里不写 resources 就创建失败?

当 Namespace 中存在 ResourceQuota 对象且启用了 CPU/memory 配额时,Kubernetes 要求所有新建 Pod 必须声明 requests.cpu、requests.memory 等字段。否则准入控制器会拦截请求,并返回类似这样的错误:

error: failed to create resource: admission webhook "resourcequota.admission.k8s.io" denied the request: object didn't match resource quota "dev-quota"

这不是 bug,是设计行为——配额系统无法对“未知量”做总量控制。

常见误操作包括:

  • 只写了 limits 没写 requests(仍会失败)
  • 写了 requests 但值为 "0" 或空字符串(等同于未设置)
  • 使用了 LimitRange 但没检查其 min 是否被违反(比如 min.memory: 128Mi,而你写了 requests.memory: 64Mi)

如何正确填写 requests 和 limits 的值?

核心原则:requests 是调度依据,limits 是运行天花板;二者单位必须一致,且需满足 min ≤ requests ≤ limits ≤ max(受 LimitRange 约束)。

实际配置建议:

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载
  • cpu 单位统一用 m(如 500m),避免写 0.5 —— 虽然语义等价,但部分旧版 kubelet 对小数解析不稳定
  • memory 单位优先用 Mi 或 Gi(二进制),不用 MB/GB —— 1Gi = 1024Mi,而 1GB = 1000MB,混用会导致 OOM 风险
  • 不要让 limits 远高于 requests(例如 requests: 256Mi / limits: 4Gi),这会降低调度器填装率,也削弱内存压力感知能力
  • Java/Node.js 类应用要额外预留 JVM 堆外内存或 GC 元数据空间,limits 应 ≥ heap + native + buffer

LimitRange 怎么影响你的 Deployment YAML?

LimitRange 不会自动注入 values,但它像一道过滤网:你在 Deployment 里写的 resources 必须落在它的 min/max 范围内,否则 kubectl apply 会静默失败(Pod 处于 Pending 状态,kubectl describe pod 显示 “exceeded maximum allowed”)。

典型陷阱:

  • 定义了 min.cpu: 100m,但容器只写 requests.cpu: 50m → 创建失败
  • 定义了 default.memory: 512Mi,但你没写 limits.memory → 容器会自动获得 512Mi 限制,可能低于实际需求
  • 多个容器共用一个 Pod,requests 总和超过 Node 可分配资源 → 调度失败,和 LimitRange 无关,但容易误判

验证方式:kubectl describe limitrange -n <ns></ns> 查看当前命名空间的硬性边界。

Deployment 中 resources 配置的最小可行示例

以下是一个能通过 ResourceQuota + LimitRange 双重校验的 Deployment 片段(假设 namespace 已配置 min.memory: 128Mi, max.memory: 2Gi):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-server
spec:
  template:
    spec:
      containers:
      - name: app
        image: my-registry/api:v2.1
        resources:
          requests:
            cpu: "250m"
            memory: "256Mi"
          limits:
            cpu: "500m"
            memory: "1Gi"

注意:requests.memory 必须 ≥ 128Mi,limits.memory 必须 ≤ 2Gi,且 requests ≤ limits。少一个字段、越一个边界,都会卡在准入阶段。

最常被忽略的一点:即使你只部署一个容器,也要确保它的 requests 值能让调度器在至少一个 Node 上找到足够空闲资源——LimitRange 管范围,ResourceQuota 管总量,而真实调度成功与否,取决于 Node 的 allocatable。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

Python uv使用教程
Python uv使用教程

本专题汇总了 Python uv 使用教程与高效使用指南,从 uv 安装配置、常用命令到虚拟环境、依赖管理与项目打包,系统讲解如何用 uv 替代 pip 与 poetry,全面提升 Python 项目开发效率,助你快速上手这一现代化包管理工具,打造干净高效的 Python 工作流。

2026.10.15

0

15

剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

2026.10.14

0

15

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

2026.10.14

0

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习