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