Kubernetes 中 Pod 计算资源管理全解析
1. 请求 Pod 容器的资源
1.1 理解 CPU 请求如何影响 CPU 时间共享
假设有两个 Pod 在集群中运行(暂不考虑系统 Pod,因为它们大多处于空闲状态)。其中一个 Pod 请求了 200 毫核(millicores)的 CPU,另一个请求的是它的五倍,即 1000 毫核。Kubernetes 区分资源请求和资源限制,在未定义限制的情况下,这两个 Pod 在 CPU 消耗上不受限制。
CPU 请求不仅影响调度,还决定了未使用的 CPU 时间在 Pod 之间的分配方式。由于两个 Pod 的请求比例为 1:5,未使用的 CPU 时间也将按此比例分配。如果两个 Pod 都尽可能多地使用 CPU,第一个 Pod 将获得六分之一(约 16.7%)的 CPU 时间,另一个则获得六分之五(约 83.3%)。
不过,如果一个容器想要尽可能多地使用 CPU,而另一个在某一时刻处于空闲状态,前者将被允许使用整个 CPU 时间(减去后者可能使用的少量时间)。当第二个容器需要 CPU 时间时,它将获得所需资源,而第一个容器的 CPU 使用将受到限制。
下面是一个简单的 mermaid 流程图,展示 CPU 时间分配逻辑:
graph LR
A[两个 Pod 运行] --> B{Pod 是否都需要 CPU?}
B -- 是 --> C[按 1:5 比例分配 CPU 时间]
B -- 否 --> D{是否有 Pod 空闲?}
D -- 是 --> E[空闲 Pod 不使用
超级会员免费看
订阅专栏 解锁全文

9995

被折叠的 条评论
为什么被折叠?



