以下是在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]