Kubernetes 中的容器是否可以确定自己的资源利用率和限制?

Can a container in Kubernetes determine its own resource utilization and limits?

我的容器化应用程序如何确定自己当前的资源利用率,以及 Kubernetes 分配的最大限制?是否有 API 从 cAdvisor and/or Kubelet 获取此信息?

例如,我的容器允许使用最多 1 个内核,而它目前正在消耗 800 毫内核。在这种情况下,我想 drop/reject 所有标记为 "low priority" 的传入请求。

-如何从我的容器中查看我的资源利用率和限制?

请注意,这假设自动缩放不可用,例如当集群资源耗尽时,或者我们的应用程序不允许自动缩放(进一步)。

您可以使用 Kubernetes Downward Api 获取限制和请求。语法是:

volumes:
    - name: podinfo
      downwardAPI:
        items:
          - path: "cpu_limit"
            resourceFieldRef:
              containerName: client-container
              resource: limits.cpu
              divisor: 1m