A deployment is completed by a pod that consumes resources (memory and CPU) on a
node. By default, pods consume unbounded node resources. However, if a project
specifies default container limits, then pods consume resources up to those
limits.
You can also limit resource use by specifying resource limits as part of the
deployment strategy. Deployment resources can be used with the Recreate,
Rolling, or Custom deployment strategies.
In the following example, each of resources
, cpu
, and memory
is
optional:
type: "Recreate"
resources:
limits:
cpu: "100m" (1)
memory: "256Mi" (2)
1 |
cpu is in CPU units: 100m represents 0.1 CPU units (100 * 1e-3). |
2 |
memory is in bytes: 256Mi represents 268435456 bytes (256 * 2 ^ 20). |
However, if a quota has been defined for your project, one of the following two
items is required:
-
A resources
section set with an explicit requests
:
type: "Recreate"
resources:
requests: (1)
cpu: "100m"
memory: "256Mi"
1 |
The requests object contains the list of resources that correspond to
the list of resources in the quota. |
-
A limit range defined in your project, where the
defaults from the LimitRange
object apply to pods created during the
deployment process.
Otherwise, deploy pod creation will fail, citing a failure to satisfy quota.