无法使用 kubeadm 在 Kubernetes v1.15 中设置外部 etcd 集群

Unable to setup external etcd cluster in Kubernetes v1.15 using kubeadm

我正在尝试使用多主集群和外部 etcd 集群设置 Kubernetes 集群。按照 kubernetes.io 中所述执行这些步骤。执行第 7 步后,我能够在 /etc/kubernetes/manifests 文件夹中的所有 3 台主机中创建静态清单 pod 文件。

之后,当我执行命令 'sudo kubeadmin init' 时,由于 kubelet 错误,初始化失败。还验证了 journalctl 日志,错误表示 cgroup 驱动程序配置错误,类似于此 SO link

我按照上述 SO link 中的说明进行了尝试,但无法解决。

请帮我解决这个问题。

关于 docker、kubeadm、kubectl 和 kubelet 的安装,我只关注 kubernetes.io 站点。

环境:

云:AWS

EC2 实例 OS: Ubuntu 18.04

Docker版本:18.09.7

谢谢

在搜索了几个链接并进行了一些跟踪之后,我能够解决这个问题。

如 Container 运行time setup, the Docker cgroup driver is systemd. But default cgroup driver of Kubelet is cgroupfs. So as Kubelet alone cannot identify cgroup driver automatically (as given in kubernetes.io 文档中给出的那样,我们必须在外部提供 cgroup-driver,同时 运行ning Kubelet 如下所示:

cat << EOF > /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf

[Service]

ExecStart=

ExecStart=/usr/bin/kubelet --cgroup-driver=systemd --address=127.0.0.1 --pod->manifest-path=/etc/kubernetes/manifests

Restart=always

EOF

systemctl daemon-reload

systemctl restart kubelet

此外,不需要 运行 sudo kubeadm init,因为我们提供 --pod-manifest-path 给 Kubelet,它 运行s etcd 作为静态 POD。

为了调试,可以使用以下命令检查 Kubelet 的日志

journalctl -u kubelet -r

希望对您有所帮助。谢谢