我正在尝试使用多主机和外部etcd集群设置Kubernetes集群。按照kubernetes.io中所述的步骤执行。执行步骤7之后,我能够在/ etc / kubernetes / manifests文件夹中的所有3台主机中创建静态清单pod文件。
之后,当我执行命令' sudo kubeadmin init '时,由于kubelet错误,初始化失败。同样验证了journalctl日志,错误表明cgroup驱动程序配置错误,类似于此SO链接。
我尝试了上述SO链接中所述的内容,但无法解决。
请帮助我解决此问题。
对于docker,kubeadm,kubectl和kubelet的安装,我仅关注kubernetes.io网站。
环境:
云:AWS
EC2实例操作系统:Ubuntu 18.04
Docker版本:18.09.7
谢谢
在搜索了很少的链接并做了很少的跟踪之后,我能够解决此问题。
如容器运行时设置中所给,Docker cgroup驱动程序为systemd。但是Kubelet的默认cgroup驱动程序是cgroupfs。因此,由于仅Kubelet不能自动识别cgroup驱动程序(如kubernetes.io docs中所述),我们必须在运行Kubelet时从外部提供cgroup-driver,如下所示:
猫<< EOF> /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf
[服务]
ExecStart =
ExecStart = / usr / bin / kubelet --cgroup-driver = systemd --address = 127.0.0.1 --pod-> manifest-path = / etc / kubernetes / manifests
重启=总是
紧急行动
systemctl守护程序重新加载
systemctl重新启动kubelet
而且,无需运行sudo kubeadm init,因为我们为Kubelet提供了--pod-manifest-path,因此它将etcd作为静态POD运行。
为了进行调试,可以使用以下命令检查Kubelet的日志
journalctl -u kubelet -r
希望能帮助到你。谢谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句