💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] # LimitRange资源与 LimitRanger准入控制器 使用 LimitRange 资源在每个名称空间中为每个容器指定最小及最大计算资源用量,甚至是设置默认的计算资源需求和计算资源限制。客户端提交创建或修改的资源对象将受到 LimitRanger 控制器的检查,任何违反LimitRange对象定义的资源最大用量的请求将被**直接拒绝**。 可以限制的类型有以下: ~~~ limits: - type: Pod -----> 限制单个Pod - type: Container -----> 限制限制容器 - type: PersistentVolumeClaim -----> 限制存储 ~~~ #### CPU资源示例 ~~~ apiVersion: v1 kind: LimitRange metadata: name: cpu-limit-range spec: limits: - default: # 定义默认的资源限制 cpu: 1000m defaultRequest: #定义默认的资源需求 cpu: 1000m min: #最小的资源用量 cpu: 500m max: #最大的资源用量 cpu: 2000m maxLimitRequestRatio: # 设定最小用量的指定倍数 cpu: 4 type: Container ~~~ 应用该CPU资源限制 ![](https://img.kancloud.cn/d5/c6/d5c6c7fb9f4ca2e1a5df8f5a0d7d9952_446x31.png) 查看详情 ![](https://img.kancloud.cn/0e/73/0e73acaf5c1bac45d58adf7614f4bc4f_646x95.png) 默认限制是1000m,最大限制是2000,最大limit与request的倍数是4 ##### 对示例进行验证 * 创建一个没有默认系统资源需求和限制的Pod对象 ~~~ kubectl run limit-pod1 --image=ikubernetes/myapp:v1 --restart=Never ~~~ 查看pod的详细信息,对资源的限制正好符合LimitRange中定义的默认值 ![](https://img.kancloud.cn/5e/49/5e492e1a9c1049e4c46c5c8705ef170e_249x65.png) * 创建一个资源需求小于LimitRange中最小用量限制的Pod ~~~ kubectl run limit-pod2 --image=ikubernetes/myapp:v1 --restart=Never --requests='cpu=400m' ~~~ 这里可以看到被拒绝创建了,因为小于最小资源需求量 ![](https://img.kancloud.cn/2d/3d/2d3df2db0b1671eae94e5bc4ebf3ab82_892x55.png) * 创建一个资源需求量大于LimitRange中最大限制的Pod ~~~ kubectl run limit-pod3 --image=ikubernetes/myapp:v1 --restart=Never --requests='cpu=3000m' ~~~ 同样,超出默认最大限制也被拒绝创建了 ![](https://img.kancloud.cn/04/a4/04a412f61cc28b56e151368fd3361cb4_943x44.png)