阅读文档后,我真的不明白这一点。有些使用“CPU”之类的术语,但有些使用“核心”。我在笔记本电脑上运行Kubernetes进行测试。我的笔记本电脑有一个CPU(2.2 GHz)和四个核心。如果我想设置pod的CPU请求/限制,我拥有的最大资源应该是1000 m还是4000 m?在Kubernetes上下文中,CPU与核心有什么区别?
kknvjkwl1#
为了澄清在Kubernetes上下文中描述的here,1个CPU与核心相同(更多信息也在这里)。
1000m (milicores) = 1 core = 1 vCPU = 1 AWS vCPU = 1 GCP Core. 100m (milicores) = 0.1 core = 0.1 vCPU = 0.1 AWS vCPU = 0.1 GCP Core.
字符串例如,Intel Core i7 - 6700有四个核心,但它具有超线程,这使系统在核心方面看到的数量增加了一倍。因此,本质上,它将在Kubernetes中显示为:
8000m = 8 cores = 8 vCPUs
型一些额外的信息:这些资源由kube-scheduler使用Completely Fair Scheduler(CFS)管理,并且在同一台机器内无法保证溢出,并且您的pod可能会被移动。如果你想有更强的保证,你可以考虑kubelet中的--cpu-manager-policy=static(CPU管理器)选项。更多信息在这里和here。有关系统在Linux系统上视为CPU(以及CPU数量)的更多详细信息,您可以通过运行cat /proc/cpuinfo来查看有多少vCPU。
--cpu-manager-policy=static
cat /proc/cpuinfo
laximzn52#
要消除对您的笔记本电脑或任何其他环境的任何猜测,请执行:
kubectl get nodes
字符串.然后对于一个特定的节点:
kubectl describe node <node-name>
型在Allocatable下查找cpu(它可能与“Capacity'下的值相同)。同时考虑到当为容器设置“分数”resources.requests.cpu和resources.limits.cpu时。
cpu
resources.requests.cpu
resources.limits.cpu
7ivaypg93#
我个人认为apisim解决方案更适合我的问题。我运行命令,发现我只有两个可分配的内核:
的数据我不明白为什么,直到我发现了这个:
的数据Rico说我的笔记本电脑应该有八个内核,因为超线程。但是Docker默认设置将其限制为两个。
vlju58qv4#
正如 * Assign CPU Resources to Containers and Pods * 中提到的,它清楚地说:CPU资源以CPU单位度量。在Kubernetes中,一个CPU相当于:
因此,设置参数-cpus "2"告诉容器尝试使用两个CPU。此外,CPU总是作为绝对数量被请求,而不是相对数量; 0.1是单核、双核或48核机器上相同的CPU数量。
-cpus "2"
4条答案
按热度按时间kknvjkwl1#
为了澄清在Kubernetes上下文中描述的here,1个CPU与核心相同(更多信息也在这里)。
字符串
例如,Intel Core i7 - 6700有四个核心,但它具有超线程,这使系统在核心方面看到的数量增加了一倍。因此,本质上,它将在Kubernetes中显示为:
型
一些额外的信息:这些资源由kube-scheduler使用Completely Fair Scheduler(CFS)管理,并且在同一台机器内无法保证溢出,并且您的pod可能会被移动。
如果你想有更强的保证,你可以考虑kubelet中的
--cpu-manager-policy=static
(CPU管理器)选项。更多信息在这里和here。有关系统在Linux系统上视为CPU(以及CPU数量)的更多详细信息,您可以通过运行
cat /proc/cpuinfo
来查看有多少vCPU。laximzn52#
要消除对您的笔记本电脑或任何其他环境的任何猜测,请执行:
字符串
.然后对于一个特定的节点:
型
在Allocatable下查找
cpu
(它可能与“Capacity'下的值相同)。同时考虑到
当为容器设置“分数”
resources.requests.cpu
和resources.limits.cpu
时。7ivaypg93#
我个人认为apisim解决方案更适合我的问题。
我运行命令,发现我只有两个可分配的内核:
的数据
我不明白为什么,直到我发现了这个:
的数据
Rico说我的笔记本电脑应该有八个内核,因为超线程。但是Docker默认设置将其限制为两个。
vlju58qv4#
正如 * Assign CPU Resources to Containers and Pods * 中提到的,它清楚地说:
CPU资源以CPU单位度量。在Kubernetes中,一个CPU相当于:
因此,设置参数
-cpus "2"
告诉容器尝试使用两个CPU。此外,CPU总是作为绝对数量被请求,而不是相对数量; 0.1是单核、双核或48核机器上相同的CPU数量。