在官方文档here中,pod.spec.container.resources.limits
的定义如下:
“限制描述了允许的最大计算资源量。”
我了解k8s禁止Pod消耗超出限制所指定的资源。 该文档没有说没有在没有限制中指定的资源量的节点中调度Pod。
例如,如果群集中的每个节点都具有2 cpus,并且我尝试部署将cpu限制定义为3的pod,则我的pod将永远不会运行,并且将处于状态Pending
。
这是示例模板:mypod.yml
apiVersion: v1
kind: Pod
metadata:
name: secondbug
spec:
containers:
- name: container
image: nginx
resources:
limits:
cpu: 3
此行为是故意的,为什么?
答案 0 :(得分:3)
您有3种Pod,没有请求定义的Pod,具有限制和请求的易爆Pod,仅定义了限制或请求的第三种Pod。
对于第三种情况,如果仅定义限制或请求,则另一种将由第一种含义定义:
resources:
limits:
cpu: 3
实际上是:
resources:
limits:
cpu: 3
requests:
cpu: 3
所以您不能只定义一个而没有另一个。因此,在您的情况下,您想为其定义请求,这样就不会受到限制的限制。