在哪里可以找到 kubernetes 集群中 pod/container 的权威资源限制?

Where can you find the authoratative resource limits for a pod/container in a kubernetes cluster?

我正在尝试找出 GKE kubernetes 集群中的一些瓶颈。我试图排除资源(cpu 和内存)限制。但是,我遇到了麻烦,因为在部署 yaml 文件中对容器设置了资源限制,但在集群中也将资源配额设置为默认值,当它们在容器定义中指定时可能不适用。但是后来我也读到你可以有 pod 资源限制,甚至可以限制特定的命名空间。

关于对容器应用了哪些限制的权威列表在哪里?如果我 kubectl Describe the Node that has the pods, details 中的限制应该是实际限制吗?

我看到你很困惑,但现实要简单得多。 首先 - 资源请求和限制应用于容器级别,而不是 pod。 Pod 资源定义为其容器资源的简单总和。

  1. Namespace quotas。它们影响整个命名空间,但不影响 pods 自身。命名空间配额唯一要做的就是确保给定命名空间中所有 pod 资源的总和不超过配置的限制。如果你有相当高的命名空间配额——你可能会忘记它甚至存在。但是你应该记住,一旦你定义了命名空间配额 - 命名空间中的任何单个容器都必须指定资源。
  2. LimitRange。 LimitRange 适用于命名空间级别。您可以为 pods 和容器配置默认资源请求和限制。它做的另一件事是为命名空间中的 pods 和容器指定最小和最大资源。
  3. 最后但也是最重要的是实际的 pod 资源。我想这件事在这种情况下或多或少是不言自明的。

现在,当您在节点或 pod 上点击 "kubectl describe" - 然后会显示 实际 pod 请求和限制。实际意味着那些重要的资源。这些资源来自何处并不重要——来自 deployment/pod 规范或来自 LimitRange。无论您是否指定了一些配额或 LimitRange,所见即所得。

这是否回答了您的问题?