看了一些 K8S 的教程,对于 K8S 资源分配的基础有点疑问,所以想请教几个问题解决一下我心中的疑问:
已知:
CPU 资源被称作 可压缩资源,而内存这样的资源则被称作 不可压缩资源。
- 当可压缩资源不足时,Pod 只会“饥饿”,但不会退出。
- 当不可压缩资源不足时,Pod 就会因为 OOM 被内核杀掉。
具体到使用场景,我的问题是:
-
某个 Pod 的 request memory 8G ,limit memory 12G 。假如该 Pod 被调度到一个剩余内存量为 10G 的节点上,在运行时该 Pod 占用的内存最大不会超过 10G ,否则会被 OOM Killed ,对吗?(还是说会被驱逐到其他节点并重启?)那这种情况下,其实 limit 这个字段所能发挥的调度灵活性还是有限的,所以集群的资源还是充足比较好,也不算浪费因为毕竟提高了服务的质量,对吗
-
我使用三台 4G 的主机作为 K8S 的 worker 节点,但是我现在有个 Pod 需要 request limit 为 8G ,那这个时候该 Pod 是没法运行在该 K8S 系统上对吗?这个应该可以做实验,不过还是想听听大佬们的指点 qaq
-
关于 request/limit 有没有一套固定的判断设置流程呢?