1. 使用 LimitRange:
LimitRange 允许您为命名空间中的对象设置资源使用的限制。以下是一个示例 LimitRange,为容器设置了默认的 CPU 请求和限制:
apiVersion: v1
kind: LimitRange
metadata:
name: my-limit-range
spec:
limits:
- default:
cpu: 100m
defaultRequest:
cpu: 50m
type: Container
上述配置表示,如果 Pod 中的容器没有设置具体的 CPU 请求和限制,将会使用默认的值。
2. 使用 ResourceQuota:
ResourceQuota 允许您限制某个命名空间中对象的总资源使用量。虽然 ResourceQuota 本身不会为对象设置默认的资源请求和限制,但您可以通过将 ResourceQuota 与 LimitRange 结合使用来实现这一目的。
首先,创建一个 ResourceQuota:
apiVersion: v1
kind: ResourceQuota
metadata:
name: my-resource-quota
spec:
hard:
requests.cpu: "1"
limits.cpu: "2"
然后,结合 LimitRange:
apiVersion: v1
kind: LimitRange
metadata:
name: my-limit-range
spec:
limits:
- default:
cpu: 100m
defaultRequest:
cpu: 50m
type: Container
上述配置限制了命名空间中所有对象的总 CPU 请求为 1 核,总 CPU 限制为 2 核。与 LimitRange 结合使用时,LimitRange 中定义的默认值将作为默认值应用于未明确设置 CPU 请求和限制的容器。
注意事项:
- 请确保您理解资源请求和限制的含义,并根据工作负载的需求进行适当的配置。
- 在设置默认资源请求和限制时,请考虑您集群中的其他配置,以避免过分消耗或浪费资源。
- 如果要为 Pod 设置特定的资源请求和限制,可以在 Pod 的 YAML 文件中明确指定,这将覆盖命名空间中的默认设置。
这是使用 LimitRange 和 ResourceQuota 为 Kubernetes 命名空间配置默认的 CPU 请求和限制的示例。确保仔细阅读 Kubernetes 官方文档以获取更多详细信息和最佳实践。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9828/Kubernetes