博客目錄
- 1. limits(資源上限)
- 2. requests(資源請求)
- 關鍵區別
- 其他注意事項
- 示例場景
在 Kubernetes (k8s) 中,resources
用于定義容器的資源請求(requests
)和限制(limits
),幫助調度器分配資源并確保容器穩定運行。以下是您提供的配置參數的含義:
1. limits(資源上限)
定義容器最多能使用的資源量,超過會被系統限制:
cpu: 2
- 容器最多使用
2 個 CPU 核心
(或等價的2000m
,即 2000 毫核)。 - 如果超過,容器會被限制(但不會被殺死)。
- 容器最多使用
memory: 4Gi
- 容器最多使用
4 GiB 內存
。 - 如果超過,容器會被 OOM Killer 終止(根據重啟策略可能重啟)。
- 容器最多使用
2. requests(資源請求)
定義容器啟動時請求的最小資源量,調度器根據此分配節點:
cpu: 1
- 容器至少需要
1 個 CPU 核心
(或1000m
)才能被調度。 - 節點必須滿足此條件才會運行該容器。
- 容器至少需要
memory: 2Gi
- 容器至少需要
2 GiB 內存
才能被調度。
- 容器至少需要
關鍵區別
參數 | 作用 | 觸發條件 | 后果 |
---|---|---|---|
requests | 調度依據(最小需求) | 節點資源不足時 | 容器無法被調度到節點 |
limits | 硬性上限(最大用量) | 資源使用超過限制 | CPU 被限流 / 內存被終止 |
其他注意事項
-
CPU 單位
1
= 1 個 vCPU/core(等價于1000m
)。- 可細分,如
0.5
=500m
。
-
內存單位
Gi
= Gibibyte (10243 bytes),Mi
= Mebibyte (10242 bytes)。- 區分大小寫,
4Gi
≠4GB
(后者按 10003 計算)。
-
合理設置
requests
過低可能導致節點過載。limits
過高可能浪費資源,過低會觸發限制。
-
服務質量(QoS)
- 若
requests == limits
,容器屬于Guaranteed
等級(優先級最高)。 - 您的配置屬于
Burstable
等級(requests
<limits
)。
- 若
示例場景
- 調度階段:K8s 會尋找至少有
1 CPU + 2Gi 內存
空閑的節點。 - 運行時:容器最多能用
2 CPU + 4Gi 內存
,超出會被限制。
覺得有用的話點個贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙