我有一个运行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%。
感谢您的帮助。
答案 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