# docker version Client: Docker Engine - Community Version: 19.03.4 API version: 1.40 Go version: go1.12.10 Git commit: 9013bf5 Built: Fir Oct 18 15:52:52 2019 OS/Arch: linux/arm64 Experimental: false
Server: Docker Engine - Community Engine: Version: 19.03.4 API version: 1.40 (minimum version 1.12) Go version: go1.12.10 Git commit: 9013bf5 Built: MFir Oct 18 15:51:29 2019 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc3 GitCommit: fabf83fd21f205c801571df4074024179eb03b44 docker-init: Version: 0.18.0 GitCommit: fec3683
# cat /etc/docker/daemon.json { ... "exec-opts": ["native.cgroupdriver=systemd"], ... } # docker run -itd --name mynginx nginx:latest docker: Error response from daemon: OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown.
// We default to cgroupfs, and can only use systemd if the system is a // systemd box. cgroupManager := libcontainer.Cgroupfs if context.GlobalBool("systemd-cgroup") { if systemd.UseSystemd() { cgroupManager = libcontainer.SystemdCgroups } else { returnnil, fmt.Errorf("systemd cgroup flag passed, but systemd support for managing cgroups is not available") } }
查看默认安装的runc版本
1 2 3 4
# runc --version runc version 1.0.0-rc3 commit: fabf83fd21f205c801571df4074024179eb03b44 spec: 1.0.0-rc5
# kubectl describe pod -n default nginx-c21d979d6-dnwgv OCI message: "process_linux.go:264: applying cgroup configuration for process caused \"No such device or address\""
是由于当对存在正在运行的pod节点进行cgroup驱动变更时,是不支持的。 知道这一点后,后续的kubelet的变更操作改为了 01. 先移除该节点的pod 02. 记录该节点label,delete pod 03. reset pod 04. cgroup-driver变更,重启kubelet 05. join node,恢复原始label