Kubernetes(k8s) 中如何设置 Pod 的资源配额和限制,以避免资源过度消耗?
- 定义资源配额(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
- 设置默认限制(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
- 在Pod配置中显式声明资源:部署Pod时,在容器定义中指定
resources.requests
(资源请求)和resources.limits
(硬性限制)。示例片段:
containers:
- name: app
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
cpu: 1
memory: 2Gi
- 验证配置:使用
kubectl describe resourcequota
和kubectl describe limitrange
检查配额生效状态,通过kubectl describe pod
确认Pod资源限制已应用。
更多回答
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别