在 Kubernetes 中,您可以使用 LimitRange 或 ResourceQuota 来为命名空间配置默认的 CPU 请求和限制。以下是使用这两种方式的示例:

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