qyh@qyh-master:/home/kubernetes$ systemctl status kubelet
● kubelet.service - Kubernetes Kubelet
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset:
Active: failed (Result: exit-code) since Sun 2019-02-24 17:34:38 CST; 8s ago
Process: 13392 ExecStart=/opt/kubernetes/bin/kubelet ${KUBE_LOGTOSTDERR} ${KUB
Main PID: 13392 (code=exited, status=255)
2月 24 17:34:38 qyh-master kubelet[13392]: --vmodule moduleSpec
2月 24 17:34:38 qyh-master kubelet[13392]: --volume-plugin-dir string
2月 24 17:34:38 qyh-master kubelet[13392]: --volume-stats-agg-period durat
2月 24 17:34:38 qyh-master kubelet[13392]: F0224 17:34:38.463222 13392 server.
2月 24 17:34:38 qyh-master systemd[1]: kubelet.service: Service hold-off time ov
2月 24 17:34:38 qyh-master systemd[1]: kubelet.service: Scheduled restart job, r
2月 24 17:34:38 qyh-master systemd[1]: Stopped Kubernetes Kubelet.
2月 24 17:34:38 qyh-master systemd[1]: kubelet.service: Start request repeated t
2月 24 17:34:38 qyh-master systemd[1]: kubelet.service: Failed with result 'exit
2月 24 17:34:38 qyh-master systemd[1]: Failed to start Kubernetes Kubelet.
------------------------------------------------------------------------------------------------------------------
查看docker和kublelt的Cgroup Driver是否一致。这个是不一致造成的。改成一致。可以看出报错的原因是kubelet与docker的cgroup driver 不一致导致
qyh@qyh-master:/home/kubernetes$ sudo docker info|grep Cgroup
Cgroup Driver: cgroupfs
----------------------------------------------------------------------------------------------------------------------
qyh@qyh-master:/home/kubernetes$ journalctl -f -u kubelet
-- Logs begin at Sun 2019-02-24 15:21:08 CST. --
2月 24 16:53:25 qyh-master kubelet[7850]: --vmodule moduleSpec comma-separated list of pattern=N settings for file-filtered logging
2月 24 16:53:25 qyh-master kubelet[7850]: --volume-plugin-dir string The full path of the directory in which to search for additional third party volume plugins (default "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/")
2月 24 16:53:25 qyh-master kubelet[7850]: --volume-stats-agg-period duration Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0. (default 1m0s) (DEPRECATED: This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.)
2月 24 16:53:25 qyh-master kubelet[7850]: F0224 16:53:25.446480 7850 server.go:154] unknown command:
2月 24 16:53:25 qyh-master systemd[1]: kubelet.service: Service hold-off time over, scheduling restart.
2月 24 16:53:25 qyh-master systemd[1]: kubelet.service: Scheduled restart job, restart counter is at 5.
2月 24 16:53:25 qyh-master systemd[1]: Stopped Kubernetes Kubelet.
2月 24 16:53:25 qyh-master systemd[1]: kubelet.service: Start request repeated too quickly.
2月 24 16:53:25 qyh-master systemd[1]: kubelet.service: Failed with result 'exit-code'.
2月 24 16:53:25 qyh-master systemd[1]: Failed to start Kubernetes Kubelet.
--------------------------------------------------------
docker相比1.10增加了KernelMemory变量和CgroupDriver变量,KernelMemory变量表示是否设置linux内核内存限制,CgroupDriver变量表示使用哪个Cgroup驱动,有两种驱动,分别是cgroupfs和systemd,默认使用cgroupfs。 那么解决该问题的方法是:要么修改docker 的cgroup driver , 要么改kubelet的 cgroup driver.。 建议改kubelet的值, 因为docker本身有些镜像在使用的话, 直接改会破坏镜像
--------------------------------------------------------------------
直接更改kubelet.sh
# 其他参数
KUBELET_ARGS="--cgroup-driver=cgroupfs"
EOF
KUBE_PROXY_OPTS=" \${KUBE_LOGTOSTDERR} \\
\${KUBE_LOG_LEVEL} \\
\${NODE_ADDRESS} \\
\${NODE_PORT} \\
\${NODE_HOSTNAME} \\
\${KUBELET_KUBECONFIG} \\
\${KUBE_ALLOW_PRIV} \\
\${KUBELET_DNS_IP} \\
\${KUBELET_DNS_DOMAIN} \\
\${KUBELET_ARGS}"