kubelet 使用 kubelet cgroup 驱动程序失败:“cgroupfs”与 docker cgroup 驱动程序不同:“systemd”

新手上路,请多包涵

cgroup driver 的配置在 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

 Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"

我还用cli检查了 Environment

 $ systemctl show --property=Environment kubelet | cat
Environment=KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf\x20--require-kubeconfig=true KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests\x20--allow-privileged=true KUBELET_NETWORK_ARGS=--network-plugin=cni\x20--cni-conf-dir=/etc/cni/net.d\x20--cni-bin-dir=/opt/cni/bin KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10\x20--cluster-domain=cluster.local KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook\x20--client-ca-file=/etc/kubernetes/pki/ca.crt KUBELET_CADVISOR_ARGS=--cadvisor-port=0 KUBELET_CGROUP_ARGS=--cgroup-driver=systemd

KUBELET_CGROUP_ARGS=--cgroup-driver=systemd

如何重现它

  • 百胜安装 -y docker-1.12.6
  • systemctl enable docker && systemctl start docker
  • 设置强制 0
  • yum install -y kubelet kubeadm
  • systemctl enable kubelet && systemctl start kubelet
  • systemctl 守护进程重载
  • systemctl 重启 kubelet
  • kubelet 日志

环境

  • Kubernetes版本(使用 kubectl version ):1.7.3
  • 云提供商或硬件配置**:4 核 16G RAM
  • 操作系统(例如来自 /etc/os-release):CentOS Linux 7(核心)
  • 内核(例如 uname -a ):Linux 10-8-108-92 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  • 安装工具:kubeadm

原文由 Yuwen Yan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
1 个回答

在我的环境中,它只能以相反的方式工作。设置 systemd 总是会导致错误。这是我目前的设置

OS: CentOS 7.6.1810
Minikube Version v1.0.0
Docker Version  18.06.2-ce

我的解决方案是:检查 /etc/docker/daemon.json 并将 systemd 更改为 cgroupfs

 {
  "exec-opts": ["native.cgroupdriver=cgroupfs"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

然后重新加载 systemctl systemctl daemon-reload 杀死之前的 minikub 配置 minikube delete 再次启动 minikube minikube start --vm-driver=none

现在检查命令行输出应该在两个输出中找到 cgroupfs

 docker info | grep -i cgroup
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

最后你应该看到

   kubectl is now configured to use "minikube"
=   Done! Thank you for using minikube!

简单的解决方案: 使用 Extra config 参数启动您的 minikube

 --extra-config=kubelet.cgroup-driver=systemd

启动 minikube 的完整命令是下一行

minikube start --vm-driver=none --extra-config=kubelet.cgroup-driver=systemd

一切顺利,玩得开心

原文由 Mchoeti 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题