learning/k8s-advanced/policy/lr.md
<AdSenseTitle>参考文档:Limit Ranges
默认情况下,容器在 Kubernetes 集群上运行时,不受 计算资源 的限制。使用 Resource quota,集群管理员可以针对名称空间限定资源的使用情况。在名称空间内部,一个 Pod(或容器)的资源消耗不受限制。此时的顾虑在于,可能有一个 Pod(或容器)独占了名称空间的大部分资源。Limit Range 是一种用来限定名称空间内 Pod(或容器)可以消耗资源数量的策略(Policy)。
[[TOC]]
KUbernetes LimitRange 对象可以:
执行命令 kubectl api-resources 可查看您的集群是否支持 Limit Range,输出结果如下所示:
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
通常 LimitRange 是默认启用的。
<!-- FIXME 如何启用 LimitRange -->LimitRange 对象LimitRanger 根据名称空间中的 LimitRange 对象为其设定默认的资源请求和响应,并确保 Pod 和容器对计算资源的实际消耗不会超过指定的值403 FORBIDDEN,以及相应的错误提示信息request 和 limit,否则系统将拒绝创建 PodLimitRange 的限定,而不在 Pod 运行时执行任何检查使用 LimitRange 的例子有:
当名称空间总的 limit 小于名称空间中 Pod/Container 的 limit 之和时,将发生资源争夺的现象,容器或者 Pod 将不能创建。
在资源争夺现象发生时,或者修改 limitrange 的时候,这两种情况都不会影响到已经创建的 Pod/Container。
更多内容请参考:
<!-- Examples -->