kubernetes - 超出资源限制

时间:2018-03-19 11:16:57

标签: resources kubernetes cpu

我有一个运行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限制,但是如果需要,pod会在此限制内使用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%。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

从评论到您的问题,您可以尝试运行具有CPU限制的docker容器: 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版本。

您需要重建或更新内核。

以下是如何从backports更新它:

  • 使用backports添加镜像: $ 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

  • 更新: sudo apt-get update

  • 从backport repo安装内核:sudo apt-get install -t jessie-backports linux-image-amd64

  • 安装后重新启动。