Docker中的Cgroup Driver:Cgroupfs 与 Systemd

摘要:
[“native.cgroupdriver=systemd”]}重新启动docker:systemctlrestartdockersystemctlstatusdocker修改kubelet:

在安装kubernetes的过程中,会出现

failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
文件驱动默认由systemd改成cgroupfs, 而我们安装的docker使用的文件驱动是systemd, 造成不一致, 导致镜像无法启动

docker info查看

Cgroup Driver: systemd

现在有两种方式, 一种是修改docker, 另一种是修改kubelet,

修改docker:#
修改或创建/etc/docker/daemon.json,加入下面的内容:

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

systemctl restart docker
systemctl status docker
修改kubelet:#
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Note: This dropin only works with kubeadm and kubelet v1.11+

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"

This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically

EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env

This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.

EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
添加如下内容--cgroup-driver=systemd

img

或者:

配置kubelet使用国内pause镜像 配置kubelet的cgroups 获取docker的cgroups

$ DOCKER_CGROUPS=$(docker info | grep 'Cgroup' | cut -d' ' -f3)
$ echo $DOCKER_CGROUPS

$ cat >/etc/sysconfig/kubelet<<EOF
KUBELET_CGROUP_ARGS="--cgroup-driver=$DOCKER_CGROUPS"
KUBELET_EXTRA_ARGS="--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

启动

$ systemctl daemon-reload
$ systemctl enable kubelet && systemctl restart kubelet
或者:

DOCKER_CGROUPS=$(docker info | grep 'Cgroup' | cut -d' ' -f3)
echo $DOCKER_CGROUPS
cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

启动

$ systemctl daemon-reload
$ systemctl enable kubelet && systemctl restart kubelet
参考:#
https://www.cnblogs.com/sparkdev/p/9523194.html

https://www.jianshu.com/p/02dc13d2f651

免责声明:文章转载自《Docker中的Cgroup Driver:Cgroupfs 与 Systemd》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于联想超极本出现蓝屏Default Boot Device Missing or Boot Failed的解决办法axios中做响应拦截时,error获取不到status及message等下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker安装mysql

装软件这样的事情,当然是要去官网最好,然而我就遇到个不靠谱的事情。 docker安装mysql,我照样去官网找镜像,然后自然的去看官网的启动教程, 在下载过后镜像,输入命令启动后 $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 这个时候使用连接工...

nginx+tomcat+java部署总结

昨天部署了一下nginx+tomcat+java出现了很多问题,以下为整理总结。 使用了两种部署方式,一种是源码部署,一种是war部署。 java源码部署总结: 环境:nginx+tomcat 部署方式:源码部署 1 源码目录/chroot2/test/schedule 目录下面就是所有源码了 2 tomcat 位置: /usr/local/tomc...

Ubuntu16.04+nvidia docker

一、安装过程: https://blog.csdn.net/heiheiya/article/details/102834222 1、先卸载干净以前的nvidia-docker sudo docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f vo...

基于docker创建的Jenkins,settings.xml文件放在哪里

如果运行容器时挂载目录如下 启动容器 docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true  --restart=always -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest 则需...

Docker集成Jenkins自动化部署SpringBoot-Jenkins自动化部署SpringBoot到Docker(转)

原文:http://www.html580.com/study/247.html springboot源码测试例子 https://gitee.com/html580/boot 一、Docker集成Jenkins自动化部署SpringBoot 1.使用docker 安装jenkinsdocker run -p 8080:8080 -p 50000:5000...

WinCE串口蓝牙的实现 .

此篇文章用于说明如何在WinCE系统上实现串口蓝牙,希望给想在CE上实现这个功能的“新手”朋友一个帮助。    先说一下我的硬件环境:CSR BC4 ROM蓝牙芯片,S3C6410,WinCE6.0系统。     硬件连接:把蓝牙的RX,TX,CTS,RTS和板子上的相应口连接,注意是交叉连接,我这里连接的是UART1。还有就是给蓝牙供电,地,天线等。  ...