kubelet 因 kubelet cgroup 驱动程序失败:“cgroupfs";与 docker cgroup 驱动程序不同:“systemd" [英] kubelet failed with kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"

查看:63
本文介绍了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 |猫环境=KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.confx20--require-kubeconfig=true KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifestsx20--allow-privileged=trueKUBELET_NETWORK_ARGS=--network-plugin=cnix20--cni-conf-dir=/etc/cni/net.dx20--cni-bin-dir=/opt/cni/bin KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10x20--cluster-domain=cluster.local KUBELET_AUTHZ_ARGS=--authorization-mode=Webhookx20--client-ca-file=/etc/kubernetes/pki/ca.crt KUBELET_CADVISOR_ARGS=--cadvisor-端口=0 KUBELET_CGROUP_ARGS=--cgroup-driver=systemd

<块引用>

KUBELET_CGROUP_ARGS=--cgroup-driver=systemd

如何重现它:

  • yum install -y docker-1.12.6
  • systemctl 启用 docker &&systemctl 启动 docker
  • setenforce 0
  • yum install -y kubelet kubeadm
  • systemctl enable kubelet &&systemctl 启动 kubelet
  • systemctl 守护进程重新加载
  • systemctl 重启 kubelet
  • kubelet 日志

环境:

  • Kubernetes 版本(使用 kubectl 版本):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 2016x86_64 x86_64 x86_64 GNU/Linux
  • 安装工具:kubeadm

解决方案

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

操作系统:CentOS 7.6.1810Minikube 版本 v1.0.0Docker 版本 18.06.2-ce

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

<代码>{"exec-opts": ["native.cgroupdriver=cgroupfs"],日志驱动程序":json 文件",日志选项":{最大尺寸":100m"},存储驱动程序":overlay2",存储选择":[overlay2.override_kernel_check=true"]}

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

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

docker 信息 |grep -i cgroupcat/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

最后你应该看到

 kubectl 现在配置为使用minikube"= 完成!感谢您使用 minikube!

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

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

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

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

祝一切顺利,玩得开心

Configuration for cgroup driver is right in /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

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

I also checked the Environment with cli

$ systemctl show --property=Environment kubelet | cat
Environment=KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.confx20--require-kubeconfig=true KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifestsx20--allow-privileged=true KUBELET_NETWORK_ARGS=--network-plugin=cnix20--cni-conf-dir=/etc/cni/net.dx20--cni-bin-dir=/opt/cni/bin KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10x20--cluster-domain=cluster.local KUBELET_AUTHZ_ARGS=--authorization-mode=Webhookx20--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

How to reproduce it:

  • yum install -y docker-1.12.6
  • systemctl enable docker && systemctl start docker
  • setenforce 0
  • yum install -y kubelet kubeadm
  • systemctl enable kubelet && systemctl start kubelet
  • systemctl daemon-reload
  • systemctl restart kubelet
  • kubelet log

Environment:

  • Kubernetes version (use kubectl version): 1.7.3
  • Cloud provider or hardware configuration**: 4 core 16G RAM
  • OS (e.g. from /etc/os-release): CentOS Linux 7 (Core)
  • Kernel (e.g. 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
  • Install tools: kubeadm

解决方案

On my environment it only worked the other way around. Setting systemd results always in an error. Here is my current setup

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

The solution for me was: Check /etc/docker/daemon.json and change systemd to 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"
  ]
}

Then reload systemctl systemctl daemon-reload Kill the previous minikub config minikube delete and start the minikube again minikube start --vm-driver=none

Now check the command line the output should find cgroupfs in both outputs

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

In the end you should see

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

Simple solution: Start your minikube with the Extra config parameter

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

The complete command to start up minikube is the next line

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

All the best and have fun

这篇关于kubelet 因 kubelet cgroup 驱动程序失败:“cgroupfs";与 docker cgroup 驱动程序不同:“systemd"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆