Kubernetes集群为什么必须做资源分配与限制

来自AI助手的总结
通过请求、限制、配额等机制防止K8s资源浪费、争抢和失控
Kubernetes集群为什么必须做资源分配与限制

一、为什么需要进行资源分配和限制?

生产中可能存在如下几个核心问题:

  • 1)服务部署过量分配资源导致资源浪费

  • 2)资源设置过大的limit导致机器故障

  • 3)服务下线未及时清理导致过多垃圾数据

  • 4)多租户、多环境资源相互争抢

  • 5)配置问题导致集群资源(Pod和rs)激增

1.1 服务部署过量分配资源导致资源浪费

Day019-K8s集群资源合理化分配-图1

避免资源浪费(解决过量分配问题)

  • 问题:服务部署时过量分配 CPU/内存,导致资源闲置,其他应用无法利用。

  • K8s 方案

  • 资源请求(Requests):定义 Pod 所需的最小资源量,调度器根据节点剩余资源分配。

  • 资源限制(Limits):限制 Pod 最大可用资源,避免单 Pod 过度占用。

  • 示例

yaml
containers:
- name: nginx
resources:
requests:
cpu: "100m" # 最小需要 0.1 核
memory: "128Mi"
limits:
cpu: "500m" # 最多使用 0.5 核
memory: "512Mi"

1.2 资源设置过大的limit导致机器故障

Day019-K8s集群资源合理化分配-图2

防止节点故障(解决 Limit 设置过大问题)

  • 问题:Limit 设置过高,导致节点资源耗尽(如 OOM Kill),引发宕机。

  • K8s 方案

  • 硬性限制(Hard Limits):通过 limits 强制约束资源使用,避免节点过载。

  • 资源监控与驱逐:节点资源压力大时,Kubelet 按优先级驱逐 Pod。

  • 示例

“`yaml

# 查看节点资源使用

kubectl top node

“`

1.3 服务下线未及时清理导致过多垃圾数据

Day019-K8s集群资源合理化分配-图3

清理垃圾数据(解决服务下线残留问题)

  • 问题:下线服务残留未清理的 Pod、ConfigMap、PVC 等,占用资源。

  • K8s 方案

  • 垃圾回收(Garbage Collection):自动清理无主资源(如孤儿 Pod、未引用卷)。

  • TTL 控制器:为临时资源设置生存时间,超时自动删除。

  • 示例

yaml
# 设置 Job 的 TTL
apiVersion: batch/v1
kind: Job
metadata:
name: cleanup-job
spec:
ttlSecondsAfterFinished: 3600 # 完成后 1 小时自动删除

1.4 多租户、多环境资源相互争抢

Day019-K8s集群资源合理化分配-图4

保障多租户公平性(解决资源争抢问题)

  • 问题:多租户/多环境共享集群时,资源竞争导致服务质量下降。

  • K8s 方案

  • 资源配额(Resource Quotas):限制命名空间的资源总量。

  • 优先级与抢占(Priority & Preemption):高优先级 Pod 可抢占低优先级 Pod 的资源。

  • 示例

yaml
# 定义命名空间资源配额
apiVersion: v1
kind: ResourceQuota
metadata:
name: tenant-a-quota
spec:
hard:
requests.cpu: "10"
requests.memory: 20Gi
pods: "50"

1.5 配置问题导致集群资源(Pod和rs)激增

Day019-K8s集群资源合理化分配-图5

控制资源激增(解决配置错误导致的资源爆炸)

  • 问题:错误配置(如 HPA 参数错误)导致 Pod/RS 数量激增,压垮集群。

  • K8s 方案

  • Horizontal Pod Autoscaler (HPA):基于指标(CPU/内存)自动伸缩 Pod 数量,设置最小/最大副本数。

  • Limit Ranges:限制单个命名空间中 Pod 的资源范围。

  • 示例

yaml
# 定义 LimitRange
apiVersion: v1
kind: LimitRange
metadata:
name: pod-limits
spec:
limits:
- type: Container
max:
cpu: "2"
memory: "4Gi"

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容