我正在尝试在AWS上设置kubernetes集群。我安装了docker,kubelet,kubectl和kubeadm。
我创建了3个EC2实例,并将弹性IP分配给一个VM。
在主节点(具有弹性IP)上,运行以下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=3.18.117.205
在初始化过程中,它停留在初始化过程中并返回超时错误。以下是Kubelet的日志:
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.511349 17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/config/apiserver
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.513005 17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:453:
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.516066 17171 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Fai
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.537776 17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444:
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.601084 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.701293 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.801496 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.901732 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:30 ip-172-31-16-195 kubelet[17171]: E0719 05:11:30.001992 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:30 ip-172-31-16-195 kubelet[17171]: E0719 05:11:30.102215 17171 kubelet.go:2248] node "ip-172-31-16-195" not found
如果我使用以下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
然后初始化成功完成,我得到加入网络的命令。
join命令包含虚拟机的私有IP地址。
因此,如果我使用上面的join命令并用它创建集群,那么无论如何我都将重新启动主节点,那么它将像改变计算机专用IP一样影响集群吗?
如果没有,那么Elastic IP的用途是什么?
任何帮助,将不胜感激。
感谢
我重新启动主节点,然后它将像更改一样影响集群在机器的专用IP中?
重新启动EC2实例不会not更改实例的私有IP地址;它仅更改公共地址(除非它是弹性IP)。
所以您不必担心。而且,您不需要弹性IP将apiserver通告给集群中的其余节点。实际上,作为最佳实践,您希望实例通过私有IP进行通信。
如果没有,那么Elastic IP的用途是什么?
没有用。设置指南是否告诉您您需要弹性IP?
我无法向您详细介绍为什么弹性IP导致问题,而又不了解您的网络设置。
如果需要进一步的故障排除帮助,可以尝试将日志详细级别设置为kubeadm init
并重新运行-v=2
并将输出发布到此处。