【发布时间】:2019-08-17 18:38:51
【问题描述】:
我对 ns 的请求/限制配额有以下疑问:
考虑以下命名空间资源设置: - 请求:1 个核心/1GiB - 限制:2 核/2GiB
这是否意味着命名空间保证有 1/1GiB?它是如何在集群节点上物理实现的?这是否意味着 k8s 以某种方式严格为 ns 保留这些值(在创建时)?在哪个时间点进行预订?
限制 2 core/2GiB - 这是否意味着它不能保证 ns 并且取决于当前集群的状态?就像当前集群只有 100MiB 的可用内存,但在运行时 pod 需要比资源请求多 200Mib - pod 会重新启动?如果 pod 需要超过它的请求,k8s 会在哪里获取这个资源?
关于 namespace granularity 和 k8s 水平自动缩放:假设我们有 2 个应用程序和 2 个命名空间 - 每个应用程序 1 ns。我们设置了两个 ns 配额,以便为 2 个额外的 pod 提供一些空闲缓冲区,并在一定 CPU 阈值的情况下水平自动扩展至 2 个 pod。那么,进行这样的设置真的有意义吗?我担心的是,如果 NS 保留了它的资源并且没有其他 ns 可以使用它们 - 我们可以在每个 ns 副本集中创建 2 个额外的 pod,而没有自动缩放,不断使用这些 pod。如果我们在 1 ns 内有超过 1 个应用程序,我可以看到使用自动缩放的意义,这样这些应用程序可以共享相同的资源缓冲区以进行缩放。这个假设正确吗?
您认为每个应用程序有 1 ns 是一个好习惯吗?为什么?
附言我知道资源请求/限制是什么以及它们之间的区别。在大多数信息源中,只有非常高级的概念解释。
提前致谢。
【问题讨论】:
标签: kubernetes