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

标签 amazon-ec2 kubernetes high-availability kubeadm etcd

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

谢谢

最佳答案

在搜索了很少的链接并做了很少的跟踪之后,我能够解决此问题。
如Container运行时setup中所给,Docker cgroup驱动程序为systemd。但是Kubelet的默认cgroup驱动程序是cgroupfs。因此,由于仅Kubelet本身无法自动识别cgroup驱动程序(如kubernetes.io文档中所述),我们必须在运行Kubelet时从外部提供cgroup-driver,如下所示:

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,因为我们为Kubelet提供了--pod-manifest-path,因此它将etcd作为静态POD运行。
为了进行调试,可以使用以下命令检查Kubelet的日志

journalctl -u kubelet -r


希望能帮助到你。谢谢。

关于amazon-ec2 - 无法使用kubeadm在Kubernetes v1.15中设置外部etcd集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913436/

相关文章:

Azure:带存储的虚拟机可用性集指南

amazon-ec2 - LBCookieStickinessPolicy - cloudformation

amazon-web-services - 当这些属性处于同一级别时,aws cli 查询多个属性

python-3.x - 容器在 Google Cloud Shell 中启动,但在 Kubernetes Engine 上失败

kubernetes - 为什么 kubernetes 需要有 2 个 coredns pod

kubernetes - 有没有办法在 Kubernetes 中处理 SIP、RTP、DIAMETER、M3UA 流量?

erlang - 一次性密码 : how to supervise non-OTP components?

cron - 如何外包周期性任务(即在 'cloud' 中)?

mongodb - AWS + Elastic Beanstalk + MongoDB

high-availability - Google Cloud Bigtable 持久性/可用性保证