繁体   English   中英

Kubernetes:Pod 和 CPU 限制

[英]Kubernetes: Pods and cpu limits

为了这个问题,让我们假设以下内容:

  • 我的 Kubernetes 集群上总共有 12 个 CPU
  • 这 12 个 CPU 分布在 3 个节点上。
  • 我在集群上运行一个 pod,没有指定任何 CPU 资源信息。 在这种情况下,我相信 CPU 请求的默认值是 100m(单个 CPU 的 10%)。
  • pod 处于部署中,副本硬编码为 1,并且没有定义自动缩放

据我了解,这意味着单个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM