0Pricing
Kubernetes Basics · 课时

资源配额与限制范围

通过强制执行命名空间级 ResourceQuotas 和 Pod 级 LimitRanges,避免邻居干扰问题与工作负载失控。

资源配额与限制范围 是 CoddyKit 上的免费 Kubernetes Basics 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kubernetes Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kubernetes Basics 课程共包含 4 节课。

共享集群的防护措施

在共享集群中,一个团队可能会意外消耗所有资源。ResourceQuotas 和 LimitRanges 是确保命名空间之间公平分配资源并防止中断的防护措施。

什么是 ResourceQuota?

ResourceQuota 会限制命名空间可以消耗的资源总量,包括 CPU、内存以及容器组或服务等对象的数量。

计算资源配额

此配额会限制命名空间中所有容器组的资源请求和资源限制总量。

apiVersion: v1
kind: ResourceQuota
metadata:
  name: team-compute
  namespace: team-a
spec:
  hard:
    requests.cpu: '4'
    requests.memory: 8Gi
    limits.cpu: '8'
    limits.memory: 16Gi

对象数量配额

配额还可以限制每种对象类型的数量,防止对象意外无序增长。

spec:
  hard:
    pods: '20'
    services: '5'
    persistentvolumeclaims: '10'

配额强制执行规则

设置了用于计算资源的 ResourceQuota 后,每个 Pod 必须声明请求和限制,否则会被拒绝。配额无法核算没有上限的 Pod。

检查配额使用情况

随时查看配额已使用了多少。

kubectl describe resourcequota team-compute -n team-a
# Resource         Used  Hard
# requests.cpu     2     4
# requests.memory  3Gi   8Gi

什么是 LimitRange?

LimitRange 会在命名空间内为每个对象应用默认值和边界,因此即使开发人员忘记设置值,单个 Pod 也会受到限制。

默认值和边界

LimitRange 可以为每个容器注入默认的请求和限制,并强制执行最小值和最大值。

apiVersion: v1
kind: LimitRange
metadata:
  name: container-limits
  namespace: team-a
spec:
  limits:
  - type: Container
    default:
      cpu: 500m
      memory: 256Mi
    defaultRequest:
      cpu: 250m
      memory: 128Mi
    max:
      cpu: '2'
      memory: 1Gi

它们如何协同工作

LimitRange 为每个容器填充默认值;ResourceQuota 随后将所有值相加,与命名空间上限进行比较。两者结合后,既能确保每个 Pod 的大小合理,也能确保命名空间的总量公平。

排查拒绝问题

如果 Pod 被拒绝,错误信息会指出违规的策略。请仔细阅读:它会告诉您是超出了配额,还是违反了 LimitRange 的边界。

# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4

生产环境提示

  • 设置 LimitRange,避免遗漏请求导致配额检查失败
  • 根据实际使用情况设置配额,并为突发峰值预留余量
  • 定期检查使用情况,并随着团队规模扩大进行调整

快速检查

测试您对命名空间防护规则的理解。

回顾

您已经学会使用 ResourceQuotas(命名空间范围内对计算资源和对象数量的上限)和 LimitRanges(每个容器的默认值和边界)来确保公平性。将两者结合使用,可以防止嘈杂邻居问题,让共享集群保持稳定,这是生产环境中的核心最佳实践。

常见问题解答

「资源配额与限制范围」课时是免费的吗?

是的 — 「资源配额与限制范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kubernetes Basics 课程的其余内容,请升级到 CoddyKit PRO。 Kubernetes Basics 课程共包含 4 节课。

「资源配额与限制范围」这节课中我会学到什么?

通过强制执行命名空间级 ResourceQuotas 和 Pod 级 LimitRanges,避免邻居干扰问题与工作负载失控。 你通过在浏览器中直接运行的动手代码来练习 Kubernetes Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Kubernetes Basics 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Kubernetes Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「资源配额与限制范围」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Kubernetes Basics 课中编写并运行代码吗?

能。每节 Kubernetes Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 诊断常见问题
  2. 调试 Pod 与 Service
  3. 生产环境最佳实践与技巧
  4. 资源配额与限制范围
← 返回 Kubernetes Basics