[英]Kubernetes: Pods and cpu limits
为了这个问题,让我们假设以下内容:
据我了解,这意味着单个 Pod 将仅在 3 个集群节点之一上运行,因为单个节点可以轻松满足其 CPU 请求。 但是,pod 开始处理 CPU 密集型的工作,从而让集群“感到惊讶”。
会发生什么?
由于没有为 pod 设置“限制”,Kubernetes 是否会允许该 pod 在单个主机节点上使用更多 CPU? 达到什么限度? 节点的 CPU 限制? 一些任意的默认限制?
我的问题只涉及 CPU 资源,而不是内存。
每个节点对于每种资源类型都有一个最大容量:它可以为 Pod 提供的 CPU 和内存量,因此如果它超过主机限制,它肯定会被终止。
如果您没有为 Container 指定 CPU 限制,则适用以下情况之一:
1) Container 对它可以使用的 CPU 资源没有上限。 容器可以使用它运行的节点上可用的所有 CPU 资源。
2) Container 运行在具有默认 CPU 限制的命名空间中,并且 Container 会自动分配默认限制。 集群管理员可以使用 LimitRange 来指定 CPU 限制的默认值。
Describe 命令将为您提供有关工作节点的所有详细信息
$ kubectl describe nodes k8s-node01
Name: k8s-node01
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
Taints: <none>
Unschedulable: false
Capacity:
cpu: 4
ephemeral-storage: 40593708Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 16432224Ki
pods: 110
Allocatable:
cpu: 4
ephemeral-storage: 37411161231
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 16329824Ki
pods: 110
System Info:
Machine ID: 15b4b4728a454166acafff508d4022e8
System UUID: 15B4B472-8A45-4166-ACAF-FF508D4022E8
Boot ID: bf52803c-9123-49e2-967b-2585401f958f
Kernel Version: 4.4.0-169-generic
OS Image: Ubuntu 16.04.6 LTS
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://19.3.4
Kubelet Version: v1.17.2
Kube-Proxy Version: v1.17.2
PodCIDR: 192.168.1.0/24
PodCIDRs: 192.168.1.0/24
Non-terminated Pods: (3 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system calico-node-j45l6 250m (6%) 0 (0%) 0 (0%) 0 (0%) 7h1m
kube-system kube-proxy-7w5fc 0 (0%) 0 (0%) 0 (0%) 0 (0%) 7h1m
mynamespace nginx 0 (0%) 0 (0%) 0 (0%) 0 (0%) 33m
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 250m (6%) 0 (0%)
memory 0 (0%) 0 (0%)
ephemeral-storage 0 (0%) 0 (0%)
Events: <none>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.