码迷,mamicode.com
首页 > 系统相关 > 详细

linux(centos8):配置docker的cgroup driver为systemd

时间:2020-05-29 17:56:22      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:管理器   使用   cli   init   运行   comm   blog   ystemd   专注   

一,为什么要修改docker的cgroup driver?

1,什么是cgroups?

cgroups(Control Groups) 是 linux 内核提供的一种机制

它可以限制、记录任务组所使用的物理资源

它是内核附加在程序上的hook,

使程序运行时对资源的调度触发相应的钩子,

达到资源追踪和限制资源使用的目的

 

2,cgroupfs是什么?

docker默认的Cgroup Driver是cgroupfs   

cgroupfs是cgroup为给用户提供的操作接口而开发的虚拟文件系统类型,

它和sysfs,proc类似,可以向用户展示cgroup的hierarchy,通知kernel用户对cgroup改动

对cgroup的查询和修改只能通过cgroupfs文件系统来进行

 

3,为什么要修改为使用systemd?

   Kubernetes 推荐使用 systemd 来代替 cgroupfs

  因为systemd是Kubernetes自带的cgroup管理器, 负责为每个进程分配cgroups,  

   但docker的cgroup driver默认是cgroupfs,这样就同时运行有两个cgroup控制管理器, 

   当资源有压力的情况时,有可能出现不稳定的情况

  如果不修改配置,会在kubeadm init时有提示:

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. 
The recommended driver is "systemd".
Please follow the guide at https://kubernetes.io/docs/setup/cri/

 

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

 

二,查看当前docker服务的cgroup driver?

[root@centos8 ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 10
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
...

可以看到默认的Cgroup Driver是cgroupfs

 

三,修改docker的cgroup driver为systemd

编辑docker的配置文件,如果不存在就创建

[root@centos8 ~]# vi /etc/docker/daemon.json

内容如下:

{
...
"exec-opts": ["native.cgroupdriver=systemd"]
}

说明:增加一条:

"exec-opts": ["native.cgroupdriver=systemd"]

如果上面一行还有内容,记得在上面一行加上逗号

例如:

{
"graph": "/data/docker",
"exec-opts": ["native.cgroupdriver=systemd"]
}

修改完成后重启docker服务

[root@centos8 ~]# systemctl restart docker

 

查看修改的效果

[root@centos8 ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 10
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Plugins:
...

可以看到修改成功,当前Cgroup Driver已修改为systemd

 

四,查看docker的版本

[root@centos8 ~]# docker --version
Docker version 19.03.8, build afacb8b

 

五,查看linux的版本

[root@centos8 ~]# cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core)

 

linux(centos8):配置docker的cgroup driver为systemd

标签:管理器   使用   cli   init   运行   comm   blog   ystemd   专注   

原文地址:https://www.cnblogs.com/architectforest/p/12988488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!