将控制组规则应用于Kubernetes集群中的特定(或所有)Docker容器

时间:2019-06-24 14:14:47

标签: docker kubernetes cgroups

默认情况下,Docker容器未特权。当然,可以使用docker run --device /dev/abc0单独添加设备,但这尚不能在Kubernetes中完成。

无论如何,我每个节点有任意数量的设备,这使得映射/dev和启用cgroup规则:docker run -v /dev:/dev --device-cgroup-rule='c 123:* rmw'更加容易。如何将此--device-cgroup-rule传递给Kubernetes控制的特定或所有Docker容器? RuntimeClass可以帮助吗?系统级的cgroup配置?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您应该专注于Kublet,它支持多个容器运行时,并且与Docker集成。

根据此documentation,有很多选项可供选择,例如:

--cgroup-driver string
     

kubelet用于操纵主机上cgroup的驱动程序。


--cgroup-root string
     

用于Pod的可选根cgroup。由容器处理   尽力而为。默认值:“”,表示使用   容器运行时默认。


--enforce-node-allocatable stringSlice
     

以逗号分隔的节点可分配执行级别的列表   由kubelet强制执行。可接受的选项是“吊舱”,“系统保留”   &“保留”。如果指定了后两个选项,   还必须设置'--system-reserved-cgroup'和'--kube-reserved-cgroup'   分别。看到   /docs/tasks/administer-cluster/reserve-compute-resources/了解更多   细节。 (默认[pods])


--runtime-cgroups string
     

在其中创建和运行运行时的cgroup的可选绝对名称。


请仔细检查并确认它们是否满足您的需求。

请告诉我是否有帮助。