一,为什么要修改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的更多相关文章

  1. rancher说明为什么需要按照指定版本安装以及rancher和节点linux环境配置-docker指定版本安装

    rancher说明为什么需要按照指定版本安装以及rancher和节点linux环境配置-docker指定版本安装 待办 https://blog.csdn.net/CSDN_duomaomao/art ...

  2. Vmware Workstation 15 Pro安装Arch Linux并配置Docker

    主机配置: CPU:Intel Core i7-7700HQ 2.8GHz 2.8GHz 内存:16GB 操作系统:Windows 10 Home 64bit 双显卡:Intel HD Graphic ...

  3. linux下配置docker和splash(图文)

    所需要环境:ubuntu16.04 第一步用:sudo apt install docker.io 第二步:完成后查看一下有没有成功 命令:docker -v,如果是输入错了写成了大V他会提示你有哪些 ...

  4. 异常【kubelet cgroup driver:cgroupfs跟docker cgroup driver:systemd不一致】

    修改docker.service vi /lib/systemd/system/docker.service 找到 --exec-opt native.cgroupdriver=systemd \ 修 ...

  5. linux 远程配置docker加速器

    https://www.jianshu.com/p/dca49964af04 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...

  6. linux(centos8):kubernetes安装的准备工作

    一,安装docker-ce19.03.11 1,卸载podman [root@kubemaster ~]# dnf remove podman podman是红帽系os自带的容器,卸载是为了避免冲突 ...

  7. 【kubeadm初始化报错】failed to run Kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"

    复现场景 环境 系统:Centos7 kubernetes:1.18.5 docker:19.03.9 复现步骤 1.通过 yum 或 rpm 安装 kubelet kubectl kubeadm,并 ...

  8. Openshift 错误解决 "修改docker cgroup driver"

    一.Openshift 错误解决 "修改docker cgroup driver" 一.错误如下 failed to run Kubelet: failed to create k ...

  9. Docker中的Cgroup Driver:Cgroupfs 与 Systemd

    在安装kubernetes的过程中,会出现 failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgrou ...

随机推荐

  1. grpc服务如何添加sentry监控(添加中间件)

    目录 需求 解决 需求 sentry是一款非常好用的工具,可以方便追踪线上的异常,在gin框架里边可以非常方便的使用Use添加中件间,grpc服务在网上搜索了一堆没一个能用的,只能硬着头皮看源码 终于 ...

  2. fiddler工具介绍及证书设置

    fiddler 目录 1.Fiddler介绍 01.介绍 02.简单使用 03.结果状态码 介绍完了,接下来就到证书了 2.Fiddler证书设置 这就是fiddler证书设置的全部步骤了 1.Fid ...

  3. 老生常谈SpringAop日志收集与处理做的工具包

    AopLog是基于Spring Aop 和ThreadLocal实现的一个专门对请求方法内容日志的拦截与处理的日志工具包. 场景 : 我想知道一些重要的请求方法的请求参数,响应参数,请求头,以及耗时, ...

  4. Linux实战(4):Centos7升级python

    记一笔升级python后产生的问题,并给予解决方案.莫慌看下文: 升级python3 我是直接 yum安装的,当然安装方法有很多,不喜欢此安装方式的可选用其他方式,我再此就不一一解释了.安装方式可不同 ...

  5. OKR工作法

    OKR 目标与关键成果 [Objectives and Key Results] OKR是目标管理工具,它的价值不在于是否完成OKR,而在于呈现出团队最应该关注的事情,通过持续性的沟通确保每个人都聚焦 ...

  6. linux 上部署 YApi 可视化接口管理平台

    linux 上部署 YApi 可视化接口管理平台: YApi 是一个高效.易用.功能强大的可视化接口管理平台,官方地址 : http://yapi.demo.qunar.com/ 环境要求 nodej ...

  7. spring in action-note-2

    1.AOP:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是 ...

  8. python协程(yield、asyncio标准库、gevent第三方)、异步的实现

    引言 同步:不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,称这些程序单元是同步执行的. 例如购物系统中更新商品库存,需要用"行锁"作为通信信号,让不同的更新 ...

  9. Leetcode-哈希表

    136. 只出现一次的数字 https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找 ...

  10. 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例

    017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...