Kubernetes(k8s) 中如何设置 Pod 的资源配额和限制,以避免资源过度消耗?

问题浏览数Icon
0
问题创建时间Icon
2025-04-24 17:48:00
回答 | 共 1 个
作者头像
xiaocao77
  1. 定义资源配额(ResourceQuota):在命名空间中创建ResourceQuota对象,限制CPU、内存等资源的总使用量。示例YAML:
apiVersion: v1
kind: ResourceQuota
metadata:
  name: pod-quota
spec:
  hard:
    requests.cpu: "4"
    requests.memory: 8Gi
    limits.cpu: "8"
    limits.memory: 16Gi
  1. 设置默认限制(LimitRange):通过LimitRange为未明确指定资源的Pod设置默认请求和限制。示例YAML:
apiVersion: v1
kind: LimitRange
metadata:
  name: pod-limits
spec:
  limits:
  - default:
      cpu: 500m
      memory: 1Gi
    defaultRequest:
      cpu: 100m
      memory: 256Mi
    type: Container
  1. 在Pod配置中显式声明资源:部署Pod时,在容器定义中指定resources.requests(资源请求)和resources.limits(硬性限制)。示例片段:
containers:
- name: app
  resources:
    requests:
      cpu: 200m
      memory: 512Mi
    limits:
      cpu: 1
      memory: 2Gi
  1. 验证配置:使用kubectl describe resourcequotakubectl describe limitrange检查配额生效状态,通过kubectl describe pod确认Pod资源限制已应用。