Limit Range
目录
理解 Limit Range
参考官方 Kubernetes 文档:Limit Ranges
使用 Kubernetes LimitRange 作为准入控制器是在容器或 Pod 级别进行资源限制。它为在 LimitRange 创建或更新后创建的容器或 Pod 设置默认请求值、限制值和最大值,同时持续监控容器的使用情况,确保命名空间内的资源不会超过定义的最大值。
容器的资源请求是资源限制与集群超额配置的比例。资源请求值作为调度器调度容器时的参考和标准。调度器会检查每个节点的可用资源(总资源 - 节点上已调度 Pod 中容器的资源请求总和)。如果新 Pod 容器的资源请求总和超过节点剩余可用资源,则该 Pod 不会被调度到该节点。
LimitRange 是一个准入控制器:
- 它为所有未设置计算资源需求的容器应用默认请求和限制值。
- 它跟踪使用情况,确保不超过命名空间中任何 LimitRange 定义的资源最大值和比例。
包括以下配置
使用 CLI 创建 Limit Range
YAML 文件示例
# example-limitrange.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: example-limitrange
namespace: example
spec:
limits:
- default:
cpu: 100m
memory: 100Mi
defaultRequest:
cpu: 50m
memory: 50Mi
max:
cpu: 1000m
memory: 1000Mi
type: Container
通过 YAML 文件创建
kubectl apply -f example-limitrange.yaml
通过命令行直接创建
kubectl create limitrange example-limitrange --namespace=example --default='cpu=100m,memory=100Mi' --default-request='cpu=50m,memory=50Mi' --max='cpu=1000m,memory=1000Mi'