14.2.1 设置容器可使用资源量的硬限制
- cpu 是可压缩资源
- 内存是不可压缩资源
创建一个带有资源 limits 的 pod

如果没有设置 requests, 那么与 limits 相同.
可超卖的 limits
所有 limits 的总和允许超过节点资源总量的100%
就是说 Kubernets 只要保证 pod 有最小资源 (requests) 可用就行了.
如果节点资源使用量超过100%, 一些容器将被杀掉 (LRU?)

14.2.2 超过 limits
对于 cpu 资源来讲, 不分配超过 limits 就行, 但对内存来讲, 申请过多比 limits 更多的内存将被杀掉.
CrashLoopBackOff 状态:

定位 pod crash 的原因:

14.2.3 容器中的应用如何看待 limits
创建14.7中的 pod:
- 1cpu
- 20mb
$ kubectl create -f limited-pod.yaml
在容器内运行 top 命令:
- 超过了 limits

在容器内看到的始终是节点的内存, 而不是容器本身的内存
对于需要这些信息的程序来说非常不利.
容器内同样可以看到节点所有的 CPU 核
与内存类似.
通过 cgroup 系统直接获取配置的 cpu 限制:
- /sys/fs/cgroup/cpu/cpu.cfs_quota_us
- /sys/fs/cgroup/cpu/cpu.cfs_period_us
