kubernetes - 超出资源限制

kubernetes - resource limits exceeded

我有一个集群 运行 Kubernetes v1.6.7。

虚拟机是:

Distributor ID: Debian Description: Debian GNU/Linux 8.7 (jessie) Release: 8.7 Codename: jessie

内核: 3.16.0-4-amd64

我们在部署中设置了 cpu 限制,但是如果需要,pods 可以超过此限制 cpu。我有什么想念的吗?就像 kubelet 中的一个参数来启用这个限制?我还没有找到关于这个问题的任何信息。

例如,如果我创建以下部署:

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: stress namespace: default labels: k8s-app: stress spec: replicas: 1 selector: matchLabels: k8s-app: stress template: metadata: labels: k8s-app: stress spec: containers: - name: stress image: progrium/stress imagePullPolicy: Always args: ["--cpu", "1"] resources: limits: cpu: "500m" memory: "1Gi" requests: cpu: "100m" memory: "512Mi"

在节点上,这使得 CPU 100% 使用,而它应该是 50%。

感谢您的帮助。

根据对您问题的评论,您可以在其中尝试 运行 docker 容器 CPU 限制您得到: WARNING: Your kernel does not support CPU cfs period or the cgroup is not mounted. Period discarded. WARNING: Your kernel does not support CPU cfs quota or the cgroup is not mounted. Quota discarded.

这意味着您的系统内核构建不支持 CFS。这是一个关于它的 issue ,关于 3.16.0-4-amd64 版本。

您需要重建或更新您的内核。

以下是从反向移植更新它的方法:

  • 添加带有反向端口的镜像: $ sudo vi /etc/apt/sources.list.d/sources.list deb http://http.debian.net/debian jessie-backports main deb-src http://http.debian.net/debian jessie-backports main

  • 更新apt: sudo apt-get update

  • 从反向移植仓库安装内核:sudo apt-get install -t jessie-backports linux-image-amd64

  • 安装后重启。