阅读完文档后,我真的不明白这一点。有些使用像“CPU”这样的术语,但有些使用“核心”。
我在我的笔记本电脑上运行 Kubernetes 以进行测试。我的笔记本电脑有一个 CPU (2.2 GHz) 和四个内核。
如果我想为 pod 设置 CPU 请求/限制,我拥有的最大资源应该是 1000m 还是 4000m?
在 Kubernetes 上下文中,这里有什么区别(CPU 与核心)?
Ric*_*ico 15
为了澄清什么描述这里的Kubernetes背景下,1个CPU是一样的核心。
1000m (milicores) = 1 core = 1 CPU = 1 AWS vCPU = 1 GCP Core.
100m (milicores) = 0.1 core = 0.1 CPU = 0.1 AWS vCPU = 0.1 GCP Core.
Run Code Online (Sandbox Code Playgroud)
例如,英特尔酷睿 i7-6700 有四个内核,但它具有超线程,可以使系统在内核方面看到的数量翻倍。所以本质上,它将在 Kubernetes 中显示为:
8000m = 8 cores = 8 CPUs
Run Code Online (Sandbox Code Playgroud)
一些额外的信息:这些资源由 kube-scheduler 使用完全公平调度程序(CFS) 管理,并且不能保证同一台机器内的超限,您的 pod 可能会四处移动。
如果你想有更强的保证,你可以考虑--cpu-manager-policy=statickubelet 中的(CPU Manager) 选项。更多信息在这里和这里。
要消除对您的笔记本电脑或任何其他环境的任何猜测,请执行:
kubectl get nodes
Run Code Online (Sandbox Code Playgroud)
...然后这是一个特定的节点:
kubectl describe node <node-name>
Run Code Online (Sandbox Code Playgroud)
cpu在Allocatable下查找(可能与“容量”下的值相同)。
考虑到
1 CPU = 1000 millicores/millicpu
Run Code Online (Sandbox Code Playgroud)
设置“分数”resources.requests.cpu和resources.limits.cpu容器时。
| 归档时间: |
|
| 查看次数: |
13424 次 |
| 最近记录: |