限制范围

目录

理解限制范围

请参考官方 Kubernetes 文档:限制范围

使用 Kubernetes 的 LimitRange 作为准入控制器是 在容器或 Pod 级别的资源限制。它为在创建或更新 LimitRange 后创建的容器或 Pod 设置默认请求值、限制值和最大值,同时持续监控容器的使用情况,以确保在命名空间内没有资源超过定义的最大值。

容器的资源请求是资源限制与集群超售之间的比率。资源请求值作为调度器调度容器时的参考和标准。调度器将检查每个节点的可用资源(总资源 - 在该节点上调度的 Pods 中容器的资源请求总和)。如果新 Pod 容器的总资源请求超过该节点剩余的可用资源,则该 Pod 将无法在该节点上调度。

LimitRange 是一个准入控制器:

  • 它为所有未设置计算资源要求的容器应用默认请求和限制值。
  • 它跟踪使用情况,以确保不超过命名空间内任何 LimitRange 中定义的资源最大值和比率。

包括以下配置

资源字段
CPU
  • 默认请求
  • 限制
  • 最大
内存
  • 默认请求
  • 限制
  • 最大

使用 CLI 创建限制范围

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'