在 Kubernetes 中,LimitRange 是一个用于限订定名空间中 Pod 或容器资源利用的对象。它紧张限定资源哀求(requests)和资源限定(limits),如 CPU 和内存。LimitRange 影响的是 Pod 或容器的创建(create)事故,而对于 Pod 的更新(update)事故,LimitRange 并不会直接处置惩罚或干预。
具体表明:
LimitRange 的工作机制:
LimitRange 在 Pod 或容器创建时收效,确保它们的资源哀求和限定符合定名空间中界说的规则。
如果在 Pod 创建时未指定 requests 或 limits,LimitRange 会为其主动设置默认值。
如果指定的资源超出 LimitRange` 的限定,则会拒绝创建 Pod。
LimitRange 与 Pod 的更新事故:
当更新 Pod 资源(比方修改容器的 CPU 或内存限定)时,LimitRange` 并不会重新验证或处置惩罚这个更新哀求。
也就是说,LimitRange 仅在 Pod 创建时收效,而在 Pod 更新时不会主动触发或查抄资源是否符合 LimitRange` 的限定。
更新举动由 ResourceQuota 和调治器控制:
Kubernetes 集群中,资源利用的连续控制更多是通过 ResourceQuota 和调治器来实现的。ResourceQuota 在资源的创建和更新时都会收效,而调治器在调治 Pod 时会思量节点是否有充足的资源。
因此,如果更新 Pod 的资源哀求超出集群的可用资源,调治器大概会调治失败,但这与 LimitRange 无关。
总结
LimitRange 对 Pod 的 创建 事故会收效,但对于 Pod 的 更新 事故并不会处置惩罚。因此,在更新 Pod 资源(如 CPU 和内存)时,LimitRange 不会重新验证或应用资源限定。
干货分享(自取)