限制范围的默认值、默认值请求、最大和最小限制之间的关系



我不了解kubernetesLimitRange配置。我创建了一个包含以下内容的清单:

apiVersion: v1
kind: LimitRange
metadata:
name: cpu-limit-range
spec:
limits:
- default:
cpu: 4
defaultRequest:
cpu: 4
max:
cpu: 6
type: Container

然后我运行以下命令:

[root@localhost ~]# kubectl  delete  pods default-cpu-demo-19 1^C
[root@localhost ~]# kubectl  get pods  -n=limit
NAME                  READY   STATUS    RESTARTS   AGE
default-cpu-demo-19   0/1     Pending   0          9s
[root@localhost ~]# kubectl  describe pods   -n=limit
......(omitted unnecessary echo here)......
Type     Reason            Age                 From               Message
----     ------            ----                ----               -------
Warning  FailedScheduling  14s (x8 over 9m2s)  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.

当然,我知道容器的限制:cpu的大部分不能比上面的配置更大。否则,kubernets将报告cpu不足。

然而,容器的max:cpu的大部分数量也不能大于上述配置的数量。

我无法区分最大值和极限值,因为值大于极限值或最大值是不允许的。

所以,我想知道它们分别代表什么以及它们之间的关系。

如果我正确理解你的问题,你问的是——LimitRange资源中设置的容器的最小、最大、默认和默认请求限制之间有什么区别。答案很简单:

  • defaultRequest——如果容器没有指定自己的值,则会给容器多少CPU/Memory
  • default--是容器的CPU/Memory量的默认限制,如果它没有指定自己的值
  • max--容器可以要求的CPU/内存量的最大限制。也就是说,它不能设置自己的限制
  • min——容器可以要求的CPU/内存的最小限制量。也就是说,它不能将自己的限制设置为小于该限制

这是官方文档的一部分,其中有关于该主题的示例和更多信息。