以下是在Ubuntu上使用Kubernetes进行资源管理的实用技巧:
合理设置资源请求与限制
resources字段为容器指定requests(最小资源需求)和limits(最大资源上限),避免资源争用和过量使用。requests: {cpu: "500m", memory: "256Mi"},limits: {cpu: "1", memory: "512Mi"}。利用LimitRange设置默认值
LimitRange为Pod/容器批量设置默认的requests和limits,简化配置。500m CPU和128Mi内存。资源配额(Resource Quotas)
ResourceQuota限制命名空间的总资源使用量(如CPU、内存、Pod数量),防止单个命名空间占用过多资源。弹性伸缩(HPA)
Horizontal Pod Autoscaler根据CPU/内存使用率自动调整Pod副本数,应对动态负载。kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=10。节点亲和性与反亲和性
nodeAffinity和podAntiAffinity将Pod调度到特定节点或避免与其他Pod同节点,优化资源分布。kubectl label nodes <node-name> env=high-priority。存储优化
PersistentVolume和PersistentVolumeClaim管理持久化存储,避免数据丢失。监控与调优
镜像优化
ubuntu:slim减少镜像体积。参考来源:[1,2,3,4,5,6,7,8,9,10,11]