我正在尝试使用多个master和外部etcd集群设置Kubernetes集群。按照kubernetes.io中所述的步骤进行操作。执行步骤7之后,我能够在/ etc / kubernetes / manifests文件夹中的所有3台主机中创建静态清单pod文件。
在那之后,当我执行命令' sudo kubeadmin init '时,由于kubelet错误,初始化失败。同样验证了journalctl日志,该错误表明cgroup驱动程序配置错误,类似于此SO link。
我尝试了上述SO链接中所述的内容,但无法解决。
请帮助我解决此问题。
对于docker,kubeadm,kubectl和kubelet的安装,我仅关注kubernetes.io网站。
环境:
云:AWS
EC2实例操作系统:Ubuntu 18.04
Docker版本:18.09.7
谢谢
答案 0 :(得分:1)
在搜索了很少的链接并进行了一些跟踪之后,我能够解决此问题。
如容器运行时setup中所给,Docker cgroup驱动程序是系统化的。但是Kubelet的默认cgroup驱动程序是cgroupfs。因此,由于仅Kubelet本身无法自动识别cgroup驱动程序(如kubernetes.io文档中所述),我们必须在运行Kubelet时从外部提供cgroup-driver,如下所示:
cat << 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
Restart =总是
EOF
systemctl守护程序重新加载
systemctl重新启动kubelet
此外,无需运行sudo kubeadm init,因为我们为Kubelet提供了--pod-manifest-path,它将etcd作为静态POD运行。
要进行调试,可以使用以下命令检查Kubelet的日志
journalctl -u kubelet -r
希望有帮助。谢谢。