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
如何复制它
环境
kubectl version):1.7.3uname -a):Linux 10-8-108-92 3.10.0-327.2.el7.x86_64 #1 SMP清华6月23日17:05:11 UTC 2016 x86_64 GNU/Linux发布于 2019-04-27 06:23:40
在我的环境中,它只起着相反的作用。设置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 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=kubelet.cgroup-driver=systemd启动minikube的完整命令是下一行。
minikube start --vm-driver=none --extra-config=kubelet.cgroup-driver=systemd一切顺利,玩得开心
发布于 2019-06-18 20:43:18
这是由初始启动过程中的变形引起的。例如,在执行kubeadm init命令之前,忘记更改docker驱动程序。
若要在CentOS下纠正此问题,请打开/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf或在操作系统下定位该文件。用EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env定位条目。打开此文件,将--cgroup-driver的值更改为systemd或与docker驱动程序相同。旧内容:
KUBELET_KUBEADM_ARGS=--cgroup-driver=cgroupfs --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1新内容:
KUBELET_KUBEADM_ARGS=--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1发布于 2017-12-14 07:35:37
可能原因
Kubelet1.7.3不读取配置文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf #50748
解决方案
如果您正在使用CentOS,并且在设置主节点时遇到困难,请验证您的Docker驱动程序是否与kubelet配置匹配:
docker info | grep -i cgroup
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf如果Docker cgroup驱动程序和kubelet配置不匹配,请更改kubelet配置以匹配Docker cgroup驱动程序。你需要改变的标志是-cgroup-驱动器。如果它已经设置好了,您可以这样更新:
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g /etc/systemd/system/kubelet.service.d/10-kubeadm.conf可将其替换为:
CG=$(sudo docker info 2>/dev/null | sed -n 's/Cgroup Driver: \(.*\)/\1/p')
sed -i "s/cgroup-driver=systemd/cgroup-driver=$CG/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.confhttps://stackoverflow.com/questions/45708175
复制相似问题